2010-01-19 48 views
0

我有一個頁面,其中包含幾個在整個頁面中完全相同的表單。我使用$ .ajax()方法提交這些表單。如何使用AJAX(jQuery)區分重複表單中的表單值

正如我所看到的,使用類來識別/提交/驗證各個表單可能會有問題。傳遞類似$('.someForms').serialize()的表單不會產生可行的結果。 .serialize()將如何選擇適當的形式?

即使.serialize()會工作,我不知道如何去應用任何形式的驗證建議的具體領域...

另一種選擇我看到的是爲每個表單代碼。

例:$('#thisForm').serialize();

我很好奇你怎麼jQuery的大師的手柄多種形式這樣嗎?

回答

2

有很多方法可以選擇表單。您可以通過它們的索引選擇它們:

$(":input[name='uniqueChild']").closest("form").serialize(); // serialize holder 

你可以通過他們獨特的父竄選擇它們:

$("form:eq(0)").serialize(); // serialize first form on page 
$("form:eq(3)").serialize(); // serialize fourth form on page 

你可以通過他們獨特的孩子第一次去選擇它們

$("#userDetails form").serialize(); // serialize form within DIV#userDetails 

雖然有很多其他的方式來專門訪問的形式,我必須說,如果你發現自己需要使用上述任何一種方法,您可能需要重新考慮一下代碼。

+0

謝謝!我有一種感覺,它可以輕鬆完成... – 2010-01-19 05:33:36

1

這個問題上的標籤之一是「驗證」。這是否意味着您在提交表單之前使用jquery的驗證?

如果是的話,那麼validate的「submitHandler」選項會將表單對象傳遞給處理函數。您應該能夠避免搜索通過該回調提交哪個元素。

$('form').validate({ 
    ... 

    submitHandler: function(form) { 
     $.ajax(
       url, 
       $(form).serialize(), 
       ... 
     ); 
    }, 

    ... 
}); 
+0

很酷。我計劃實現jQuery表單處理程序,我還沒有機會。 – 2010-01-19 15:15:34