基本上在文本框中调用.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属性。任何人都知道为什么会这样?包含此行为详情的相关链接会更有帮助。
答案 0 :(得分:3)
Hidden
输入不是 用户可编辑 ,因此您可能会发现 默认值和当前值 对他们来说是一样的。因此,.val()
和.attr('value')
对于hidden
元素
据我所知,value
属性描述了元素的 默认值 ,而非 当前值 即可。当前值是您可以通过value属性访问的(这是jQuery val()
所做的)。