javascript - HTML 输入值属性 - 相同的输入,(显然)不同的结果

标签 javascript html input

通过输入框进行编辑后,html 输入标签的值属性如何工作?

例子:

<input type="text" name="test" id="test" value="Hello world" />

这将显示一个带有文本“Hello world”的输入框。如果我编辑它,将一个新字符串输入到呈现的文本框中(不是通过原始代码),然后尝试像这样使用 js 获取他的值

alert(document.getElementById('test').value)

我会正确地获取新值。 但是,如果我通过 chrome 开发人员工具(或 Firebug 或任何您喜欢的工具)检查该元素,我会看到与开始时相同的“Hello world”字符串。

这两个哪个是正确的? js 值还是 chrome 检查器?

这是 Example Fiddle这是一个截图 enter image description here

我在尝试解决这个问题时想到了这个:经典商店情况,我有一个带有 X inputs 标签的表格,用户可以在其中输入 X 件商品的数量。我需要检查一个或多个值自每个输入的前一个值以来是否发生了变化:如果 OLD 和 NEW val 之间的比较返回值已发生变化,我需要更新订单。否则无需保存/更新。

我以为我可以使用 attr。 “value”存储输入的“旧”值,但可能不是最佳选择..

谁能解释这种行为?这只是一个“刷新”问题还是背后有其他问题?

最佳答案

两者都是对的,它们只是表现出不同的东西。

DOM value property 为您提供current 值。

HTML value attribute 为您提供default 值(与 DOM defaultValue 属性(property))。

Chrome DOM 检查器在 HTML View 中显示属性值。您必须查看属性 View 才能看到属性值。

Screen shot of Chrome property view

关于javascript - HTML 输入值属性 - 相同的输入,(显然)不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14891703/

相关文章:

javascript - 在 html 中使用 <p> 元素的特定单词

javascript - 如何获取单选按钮的文本(而不是值)

javascript - 表单的输入默认文本

JavaScript 弹出窗口未触发?

javascript - Kendo 窗口 - 第二次单击按钮时窗口不会打开

javascript - 如何获取内部具有不同键名称和内容的嵌套 json 数组数据?

javascript - 使信息框飞出并展开

javascript - 这个类似射线的动画背后的数学原理是什么?

JavaScript 代码无法跨浏览器运行

c - 函数 ‘getline’ 的隐式声明在一个代码中引发警告,但在另一代码中未引发