2012-01-30 35 views
-2

我的jsfiddle應用程序click here存在問題。當您打開撥弄然後你會看到一個文本,請按照下列步驟操作(在任何borwser但IE):表單提交時不應該這樣做

1:輸入一個問題在textarea的

2:點擊「AddQuestion」按鈕。您輸入的問題將附在下表中。

3:刪除所有你剛纔添加下表中

4 textarea的文字:現在點擊下方的「提交詳細信息」按鈕。

現在,您可以看到它正在嘗試提交詳細信息並進入新頁面。這不應該發生,因爲我在驗證功能中聲明,如果附加在表格中的textarea爲空或「」,則顯示一條警告「請輸入有效問題」。即使問題是有效的,它也應該顯示一個確認框,說明是否要繼續。

當提交按鈕被點擊時,它應該遵循「myClickHandler」,但它爲什麼不這樣做?

+0

爲什麼你要混合普通的JavaScript和jQuery那樣? – j08691 2012-01-30 03:21:50

+0

因爲我在另一個php文件中做了類似的驗證功能,但是那個用戶的javascript,而我正在處理的文件現在包含jquery。 – user1170029 2012-01-30 03:24:12

回答

0

計劃:

$("#addQuestionBtn").click(function(event) { 
    event.preventDefault(); 
    ... 
}); 

B計劃:

$('#enter').submit(function() { 
    .... 
    return false; 
}); 

添加 「返回false;」到底

報價:

http://api.jquery.com/submit/

事件處理程序可以綁定到窗體:

$('#target').submit(function() { 
    alert('Handler for .submit() called.'); 
    return false; 
}); 

現在提交表單時,該消息被驚動。這發生在實際提交之前,所以我們可以通過調用事件對象上的.preventDefault()或通過從我們的處理程序返回false來取消提交操作。當點擊另一個元素時,我們可以手動觸發事件:

0

使用event.preventDefault()取消表單提交。

順便說一句,你可能意思是textAreaO.length,而不是textAreaO.value.length引發TypeError

0

validate()函數中的textAreaO變量可能包含選擇中的多個項目。遍歷每個項目,並做每個檢查:

var isValid = true; 
$(textAreaO).each(function() { 
    isValid = isValid && //insert your validation check here; 
}); 

if(!isValid) alertValidation += "\nYou have not entered a valid Question\n"; 
相關問題