首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么隐藏输入元素的值(‘.attr’)不能从html字符串中返回原始值?

为什么隐藏输入元素的值(‘.attr’)不能从html字符串中返回原始值?
EN

Stack Overflow用户
提问于 2015-09-02 02:41:01
回答 1查看 1.1K关注 0票数 17

基本上,当在文本框上调用.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

DEMO

如果我们使用.val()来设置元素的值,那么value属性会被忽略。有人知道为什么会发生这种事吗?包含此行为详细信息的相关链接会更有帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-02 03:01:35

Hidden输入不是用户可编辑的,因此您可能会发现默认值和当前值对于它们是相同的。因此对于hidden元素,.val().attr('value')是相同的

据我所知,value属性描述了元素的默认值,而不是当前值。当前值是您可以通过Value属性访问的值(这是jQuery val()所做的事情)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32338756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档