基本上,当在文本框上调用.attr("value")
时,它将返回在标记中设置的值,而不是使用.val()
设置的值。
例如,
<input id="test" type="text" value="testing" />
Js:
$("#test").val("hello");
console.log($("#test").val()); //hello
console.log($("#test").attr('value')); //testing
但在对隐藏元素执行相同操作时,结果会有所不同,如下所示:
HTML:
<input id="test1" type="hidden" value="testing" />
Js:
$("#test1").val("hello");
console.log($("#test1").val()); //hello
console.log($("#test1").attr('value')); //hello
如果我们使用.val()
来设置元素的值,那么value属性会被忽略。有人知道为什么会发生这种事吗?包含此行为详细信息的相关链接会更有帮助。
发布于 2015-09-02 03:01:35
Hidden
输入不是用户可编辑的,因此您可能会发现默认值和当前值对于它们是相同的。因此对于hidden
元素,.val()
和.attr('value')
是相同的
据我所知,value
属性描述了元素的默认值,而不是当前值。当前值是您可以通过Value属性访问的值(这是jQuery val()
所做的事情)。
https://stackoverflow.com/questions/32338756
复制相似问题