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的行为可能发生了变化。