1.onsubmit屬性。如果設置form表單的onsubmit='return false',這個form表單用submit按鈕是無法提交的。
<form onsubmit="return false" action="/doaction" id="myForm" method="post"> <input type="text"> <input type="text"> <button type="submit">提交</button> </form>
return false:阻止了元素本身默認事件,阻止了冒泡。
2.html.submit()表單提交。
<form onsubmit="return false" action="/doaction" id="myForm" method="post"> <input type="text"> <input type="text"> <button onclick="login()">提交</button> </form> <script> function login () { document.getElementById('myForm').submit() } <script>
這個方法可以忽略return false,參考鏈接解釋:https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLFormElement/submit
這時候表單可以提交。
遇到的問題,當監聽回車事件時,會發現出現兩次請求,第一次請求被很快canceled,需要在回車方法中把form表單的默認方法再一次禁掉。
function keyLogin(evt) {
evt = (evt) ? evt : ((window.event) ? window.event : "");
var key = evt.keyCode?evt.keyCode:evt.which;
if(key == 13){
evt.preventDefault();
login();
}
}