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

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


当前回答

Serialize()是最好的方法。@ Christopher Parker说,Nickf的回答实现了更多,但它没有考虑到表单可能包含文本区域和选择菜单。最好使用serialize(),然后根据需要对其进行操作。serialize()中的数据可以在Ajax post或get中使用,因此没有任何问题。

其他回答

jQuery的serializeArray不包括禁用字段,所以如果你也需要这些,试试:

var data = {};
$('form.my-form').find('input, textarea, select').each(function(i, field) {
    data[field.name] = field.value;
});

联想?不是没有一些工作,但你可以使用通用选择器:

var items = new Array();

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

我也遇到过同样的问题,只是用了不同的方法。

var arr = new Array();
$(':input').each(function() {
 arr.push($(this).val());
});
arr;

它返回所有输入字段的值。您可以将$(':input')更改为更具体。

Serialize()是最好的方法。@ Christopher Parker说,Nickf的回答实现了更多,但它没有考虑到表单可能包含文本区域和选择菜单。最好使用serialize(),然后根据需要对其进行操作。serialize()中的数据可以在Ajax post或get中使用,因此没有任何问题。

这段代码可以工作 而不是名称,电子邮件输入您的表单字段的名称

$(document).ready(function(){
  $("#form_id").submit(function(event){
    event.preventDefault();
    var name = $("input[name='name']",this).val();
    var email = $("input[name='email']",this).val();
  });
});