2010-09-07 58 views
2

下面的代碼片段貫穿一堆表單元素,抓取名稱和值並提醒它們。如果有3個輸入,我會得到三個警報。我需要將這些全部結合起來,以便我可以通過.post提交它們,但不知道該怎麼做。如何使用.each運行輸入,然後合併結果?

我無法使用.serializeArray,因爲我沒有可以使用的窗體標籤。後端是.net,並且頁面上最多可以有20種不同的表單,所以我無法提交整件事情。

任何人都可以指向正確的方向嗎?

$('.savefunctions a').live('click', function() { 
    var fields = $(this).parents('.ui-accordion-content').find(':input'); 
      $.each(fields, function(i, field) { 
     alert(field.name+': "'+field.value+'", '); 
    }); 
}); 

回答

3

你不需要<form>使用.serializeArray()

From the docs:

該方法可以已經選擇單獨的形式的元素jQuery對象上起作用,如<input><textarea>,和<select>

var result = $(this).parents('.ui-accordion-content') 
              .find(':input').serializeArray(); 
+0

感謝您的答覆。從那裏開始,我現在已經成功地將它作爲json發佈,並且全世界都很好。 :) – Trip 2010-09-07 20:07:33

0

使用對象:

$('.savefunctions a').live('click', function() { 
    var o = {}; 
    var fields = $(this).parents('.ui-accordion-content').find(':input'); 
    $.each(fields, function(i, field) { 
     o[field.name] = field.value; 
    }); 
    $.post('http://my.url/', o); 
}); 
0

試試這個:

$(fields).each(<do your processing here for each field>); 

注:裏面的。每個(),在各字段重複使用關鍵字這一點。但是,如果你需要應用jQuery功能,然後做這樣的事情:

$(this).click(); 
相關問題