我需要使用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>
答案 0 :(得分:0)
将d的定义直接放在全局范围内:http://jsfiddle.net/UQTY2/34/
window.d = function (input) {
alert("value: " + input.value + "\ndefaultValue: " + input.defaultValue);
}
答案 1 :(得分:0)
好问题!它也不适用于 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>
编辑: 更新了我的代码。