修改"text"输入的"value"属性不能使用JavaScript

sam*_*fer 1 html javascript dom textbox

我有一个关于文本输入字段的问题,其值由JavaScript函数修改.这是我的代码的简化片段:

<!doctype html>
<html>
    <meta charset="utf-8">
    <head>
        <title>Test Page</title>
        <script>
            function runScript()
            {
                document.getElementById("result").innerHTML = "Changing Text Input Value to Name 2";
                document.getElementById("name_input0").value = "Name 2";
                document.getElementById("name_hidden0").value = "Name 2";
            }
        </script>
    </head>
    <body>
    <input type="hidden" id="name_hidden0" value="Name 1"/>
    <input type="text" name="name_enter0" id="name_input0" value="Name 1"/>
    <input type="button" value="Run Script" onClick="runScript()"/>
    <div id="result"></div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

页面加载时,文本和隐藏输入都填充值"名称1".单击按钮时,页面如下所示:

运行JavaScript后的页面视图

但是,如果我使用开发者工具(我尝试使用Firefox和Chrome)查看源代码并查看HTML代码,我会看到以下内容:

运行JavaScript后的基础HTML

为什么文本输入字段的"value"属性在底层HTML中没有改变,但隐藏的输入"value"呢?

Que*_*tin 7

对于文本输入:

HTML value属性设置默认值.

DOM value属性保存当前值.

它们之间没有1:1的映射.

  • 你可以使用setAttribute,但为什么要这样? (2认同)