$("#fieldset").closest("fieldset").find("input, select,textarea").change(function() {
return ($(this).val());
}).get().join(',');
我在更改时获得所有可编辑字段值。我需要将所有可编辑值存储在数组中以传递给控制器吗?
如何将值存储在数组中
感谢
答案 0 :(得分:2)
var array;
$("#fieldset").change(function(event) {
$(event.target).data('changed',true);
});
$("form").submit(function() {
array = $(this).find("input, select,textarea").map(function() {
var $th = $(this);
if( $th.data('changed') ) return $(this).val();
}).get();
});
#fieldset
更改事件将在其任何后代元素发生更改时触发。
然后,handler找到input / select / textarea元素,并对它们执行.map()
返回它们的值,这将创建一个带有值的jQuery对象。
.get()
从jQuery对象中获取/返回数组。
在此测试: http://jsfiddle.net/Mrrty/2/ (更改其中一个元素的值)
修改强>
请注意,如果您不想在每个时间内获取一个新数组,则其中一个元素会发生变化,您可以使用不同的事件执行相同的操作。也许在.submit()
上这样做会更合适。