使用jQuery获取表单输入字段?

我有一个有许多输入字段的表格。

当我用jQuery捕获提交表单事件时,是否可以用一个关联数组来获取该表单的所有输入字段?

解决办法
$('#myForm').submit(function() {
    // get all the inputs into an array.
    var $inputs = $('#myForm :input');

    // not sure if you wanted this, but I thought I'd add it.
    // get an associative array of just the values.
    var values = {};
    $inputs.each(function() {
        values[this.name] = $(this).val();
    });

});

感谢Simon_Weaver的提示,这里有另一种方法,你可以用serializeArray来做。

var values = {};
$.each($('#myForm').serializeArray(), function(i, field) {
    values[field.name] = field.value;
});

注意,这个片段在" "元素上会失败。

在jQuery 1.3版本中,new HTML 5 form inputs似乎不能与serializeArray一起工作。这在1.4以上版本中可以使用

评论(18)
$('#myForm').bind('submit', function () {
  var elements = this.elements;
});

elements变量将包含表单中所有的输入、选择、文本区域和字段集。

评论(0)

关联性?不做一些工作是不行的,但你可以使用通用选择器。

var items = new Array();

$('#form_id:input').each(function (el) {
    items[el.name] = el;
});
评论(3)