2012-07-19 148 views
6

我試圖調用表單驗證時點擊普通按鈕。這似乎與jQuery很好,但不是與純JavaScript。 任何人都可以解釋jQuery的.submit()和javascript的.submit()方法之間的區別嗎?或者我做錯了什麼?jquery提交與javascript提交

<html> 
<head> 
<title>Form Submit</title> 
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> 

<script type="text/javascript"> 
function validateForm(form) { 
    if (form.username.value=='') { 
    alert('Username missing'); 
    return false; 
    } 
    return true; 
} 
</script> 

</head> 

<body> 

<form action="index.php" name="loginform" method="post" onsubmit="return validateForm(this);"> 
    <input name="username" placeholder="username" required="required" type="text" /> 
    <input name="send1" type="button" value="Login1" onclick="$(document.forms.loginform).submit();" /> 
    <input name="send2" type="button" value="Login2" onclick="document.forms.loginform.submit();" /> 
    <input name="send3" type="submit" value="Login3" /> 
    <a href="" onclick="event.preventDefault(); $(document.forms.loginform).submit();"> Login4 </a> 
    <a href="" onclick="event.preventDefault(); document.forms.loginform.submit();"> Login5 </a> 
</form> 

</body> 
</html> 

onsubmit results

回答

14

的DOM submit()方法不會觸發事件提交。 jQuery的確。

+0

好的,謝謝你的解釋。所以上面的腳本應該正確地擴展爲'if(validateForm(document.forms.loginform))document.forms.loginform.submit();' – Stano 2012-07-19 11:00:36

+0

這不再是這種情況。 'document.formName.submit()'(或'document.querySelector('form [name =「formName」]')。submit()')確實會觸發表單提交 – chiliNUT 2015-07-30 17:20:54

+2

@chiliNUT - 表單提交,是的。表單提交事件,沒有。 – Quentin 2015-07-30 19:39:43