如何使用jquery将所有可编辑值存储在数组中

时间:2010-06-21 16:41:29

标签: jquery

 $("#fieldset").closest("fieldset").find("input, select,textarea").change(function() {
        return ($(this).val());
    }).get().join(',');

我在更改时获得所有可编辑字段值。我需要将所有可编辑值存储在数组中以传递给控制器​​吗?

如何将值存储在数组中

感谢

1 个答案:

答案 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()上这样做会更合适。