2016-01-01 73 views
0

這是我與形式ID =「細節」腳本片爲什麼我的表單即使在密碼匹配後也沒有被提交。

<script type="text/javascript"> 
function onLoad() { 
    $("#password").keyup(passCheck); 
    $("#repeatpass").keyup(passCheck); 
} 
function passCheck() { 
    var password = $("#password").val(); 
    var repeatpass = $("#repeatpass").val(); 
    if (password == repeatpass) { 
     $("#matchpass").text("Passwords match"); 
     $("#matchpass").addClass("valid"); 
     $("#matchpass").removeClass("error"); 
     $("#details").submit(true); 

    } else { 
     $("#matchpass").text("Passwords donot match"); 
     $("#matchpass").addClass("error"); 
     $("#matchpass").removeClass("valid"); 
     $("#details").submit(false); 

    } 
} 
$(document).ready(onLoad); 
</script> 

我想知道爲什麼我的表格(ID =「詳細信息」)沒有被提交,如果有人可以解釋這種結構是如何工作的,這對我來說會更有幫助。謝謝

+0

你不介意共享html,我的意思是表格部分 – Oxi

+0

請訪問http://stackoverflow.com/help/mcve並相應地編輯您的問題。謝謝。 – Trevor

回答

0

Working fiddle

使用$("#details").submit()而不是$("#details").submit(true);並刪除$("#details").submit(false);

希望這會有所幫助。

0

對於初學者,您不需要在else塊中調用.submit

此代碼的工作分三個步驟:

(1).ready命令告訴jQuery的,當頁面就緒時,它應該執行一個名爲onLoad功能。

(2)onLoad函數說明,當按下鍵盤上的按鍵時,應調用passCheck函數。 (3)passCheck函數檢查兩個文本是否相等,如果是,則提交表單,否則它不提交(即不應提交.submit)。

可能這兩個密碼最初都是空的,所以它們是相等的,並且.submit被嘗試,但是錯誤會阻止腳本停止工作的函數。之後腳本完全停止工作。

上述提到的關於HTML代碼請求和.submit參數說明的說明都是正確的。

+0

不錯!謝謝valar morgulis,我很快從我的手機回答,所以它確實需要編輯! – Panais

0

submit功能不應傳遞參數刪除您$("#details").submit(true);$("#details").submit(false);它不存在在jQuery的API編寫的代碼,這個片段將是更好的使用:

$("form").submit(function(event) { 
    if ($("span").hasClass('error')) { 
    alert('prevented'); 
    event.preventDefault(); 
} 
return; 
}); 

Fiddle Link

相關問題