以下代码段遍历一堆表单元素,获取名称和值并提醒它们。如果有3个输入,我会收到三个警报。我需要将这些全部结合起来,以便我可以通过.post提交它们,但不知道该怎么做。
我不能使用.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+'", ');
});
});
答案 0 :(得分:3)
您不需要<form>
来使用.serializeArray()
。
此方法可以作用于已选择单个表单元素的jQuery对象,例如
<input>
,<textarea>
和<select>
。
var result = $(this).parents('.ui-accordion-content')
.find(':input').serializeArray();
答案 1 :(得分: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);
});
答案 2 :(得分:0)
试试这个:
$(fields).each( <do your processing here for each field> );
注意:在.each()内部,要遍历每个字段,请使用关键字this。但是如果你需要应用jQuery函数,那么就这样做:
$(this).click();