好了,我有以下的Javascript:如何使用JavaScript .submit(函数(事件){多个元素
//Form handling
var form = $('#form-ajax');
var formMessages = $('#form-messages');
$(form).submit(function(event) {
// Stop the browser from submitting the form.
event.preventDefault();
// Serialize the form data.
var formData = $(form).serialize();
$.ajax({
type: 'POST',
url: $(form).attr('action'),
data: formData
}).done(function(response) {
//Do something
}).fail(function(data) {
//Do something
});
});
基本上覆盖默认表单提交和使用Ajax,而不是处理事情
要使用它,我只需要在form-ajax
ID添加到窗体,并添加id为form-messages
一个空div;从形式的任何响应将无需重新加载页面显示在这个div
。我的问题是我想要的使用这个相同的Javascript调用多种形式,我不能解决如何。
我认为改变form-ajax到一个类会有所诀窍。所以
var form = $('.form-ajax');
而不是:
var form = $('#form-ajax');
但它并没有帮助。在这两种情况下,如果多个形式使用具有这样的:
<div id="form-messages"></div>
<form class="form-ajax" method="post" action="dosomething.php">
</form>
<form class="form-ajax" method="post" action="dosomethingelse.php">
</form>
提交任一形式将触发第二被张贴。我假设由于它们在DOM中加载的顺序。
任何想法如何解决这个问题,以便我可以重新使用这一个处理程序/事件。
使用'this'取代'form'的事件处理中。了解关于jQuery事件处理基础知识的更多信息:http://learn.jquery.com/events/event-basics/ – 2014-09-12 19:20:15