输入类型值相当于defaultValue

HTML: Input type value equivalent to defaultValue

本文关键字:defaultValue 相当于 类型 输入      更新时间:2023-09-26

我需要更改type="button"的输入值。另一个函数通过比较"value"属性和"defaultValue"属性来检查它的值是否被改变了(但这不是重点…)。除了type="button"的输入,其他的都可以正常工作。由于某些原因,浏览器也会更改默认值。但是为什么呢?

注意:没有jQuery!

下面是一个简化的测试代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <script type="text/javascript">
            function d(input)
            {
                alert("value: "+ input.value +"'ndefaultValue: "+ input.defaultValue);
            }
        </script>
    </head>
<body>
    <input type="button" value="0" onclick="d(this); this.value=1; d(this);" />
</body>
</html>

将d的定义直接放在全局作用域中:http://jsfiddle.net/UQTY2/34/

   window.d = function (input) {
       alert("value: " + input.value + "'ndefaultValue: " + input.defaultValue);
   }

好问题!type="reset"也不行。
这是因为它们没有指定数据类型,它们只是按钮。您可以保存按钮的第一个值,然后使用它。我给你写了一个例子:

<!DOCTYPE HTML>
<html>
    <head></head>
    <body>
        <input id="test" type="button" value="Old text" onclick="d(this); this.value='Hello, new text';"/>
        <script type="text/javascript">
            var defaultValueOfInput = document.getElementById("test").value;
            function d(button){
                alert("Value: "+button.value+"'ndefaultValue: "+defaultValueOfInput);
            }
        </script>
    </body>
</html>

编辑: 我的代码更新。