好了,我有以下的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