Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery.val()不适用于输入字段_Jquery_Forms_Input - Fatal编程技术网

jQuery.val()不适用于输入字段

jQuery.val()不适用于输入字段,jquery,forms,input,Jquery,Forms,Input,我试图捕获输入字段的值,并在表单类中使用以下方法来实现这一点: getData: function() { var fields = ['name', 'email', 'message']; $.each(fields, function(index, el) { form.data[el] = $('#'+el).val(); console.log(form.data[el]); }); }, 不管“选择”字段是什么,这是一个定制的

我试图捕获输入字段的值,并在表单类中使用以下方法来实现这一点:

getData: function() {
    var fields = ['name', 'email', 'message'];
    $.each(fields, function(index, el) {
        form.data[el] = $('#'+el).val();
        console.log(form.data[el]);
    });
},
不管“选择”字段是什么,这是一个定制的选择框,我必须以不同的方式处理它 我执行表单更改捕获事件。 输入字段都有正确的id,它们看起来像这样:

<input type="text" id="name">
<input type="email" id="email">
<textarea name="message" id="message"></textarea>
现在,当我在字段中键入某些内容时,我只从textarea中获取值,而其他输入给我未定义的值

我还要注意,表单是用Ajax加载的,但由于它通常捕获字段上的更改事件,我怀疑这是问题所在。

我已经解决了


由于某些原因,我在输入字段中缺少name属性。val需要该属性才能工作。

根据W3C的建议,html for只能在输入字段具有控件名时发送数据。ID不计算在内。好吧,这一切都很好,事实上是无价之宝,但是jQuery.val会让人相信它可以很高兴地使用id=作为选择器,如果你看的话。我的测试表明,一个人不仅必须有id=和name=而且必须是相同的。我真的很喜欢这个东西

否,val不必同时具有name和id属性。
我已经测试了它,只有id,.val可以正常工作

确认您没有任何其他具有重复id的元素导致问题-因为这应该可以工作。当然可以,form.data[el]=$+el.val;此语句实际上需要通过名称attr进行映射。无论如何,用自我回答来结束这个问题。这对我也很有用,如果有人能解释一下原因,我将不胜感激。根据W3C的建议,html for只能在输入字段有控件名的情况下发送数据。ID不计算在内。在最近的jQuery版本中,.val的行为可能发生了变化。