假设有一个简单的HTML表单:
<form id="settings-form">
<label>
Input data:
<input name="data"/>
</label>
<button id="submit-btn">Submit</button>
</form>
我希望使用jQuery和AJAX提交表单,以便页面不会被刷新。以下是至少两种实现方法:
1. 附加事件处理程序到表单的实际提交中:
$("#settings-form").submit(function(event){
event.preventDefault();
var data = $(this).serialize();
//Ajax code here
});
在这里,我会将type='submit'
添加到按钮submit-btn
中。
2. 将事件处理程序附加到按钮:
$("#submit-btn").click(function(){
var data = $("#settings-form").serialize(); // or this.closest("form").serialize()
//Ajax code here
});
在这里,
submit-btn
获取了 type='button'
。我的问题是:哪个选项更好?这不是关于在这种情况下哪个
type
属性值更好,而是为什么事件处理程序1比2好或反之。
click()
事件监听器方法似乎是在重写submit()
而没有覆盖相同的功能。 - lennyklbclick
事件,用户必须实际点击按钮才能使用jQuery提交表单。但是现在有许多其他提交表单的方式。;-) - Koen