如何获取所选表单的所有元素

时间:2014-10-28 10:39:03

标签: jquery

你好假设我在页面上有两个表单。

现在我想获取所有输入元素(即使它们被隐藏)。

我现在的代码如下:

    $("form.prev, form.next").submit(function(e){
      e.preventDefault();

      var inputs = $(this).filter(':input');
      console.log(inputs);
      var values = {};

      inputs.each(function() {
        values[this.name] = $(this).val();
    });

    console.log(values);
});

我希望看到输入元素的列表及其键和值。但console.log(values);的结果是一个空对象

这里出了什么问题?

2 个答案:

答案 0 :(得分:2)

无需亲自执行此操作 - serialize()功能是为此目的而发明的。

$("form.prev, form.next").submit(function(e){
    e.preventDefault();

    var data = $(this).serialize();
    // data is a key/value string, you can now use it in AJAX requests for example
});

jQuery API - Serialize()

答案 1 :(得分:1)

试试这个:使用.find()代替.filter()

$("form.prev, form.next").submit(function(e){
      e.preventDefault();

      var inputs = $(this).find(':input');
      console.log(inputs);
      var values = {};

      inputs.each(function() {
        values[this.name] = $(this).val();
    });

    console.log(values);
});