defaultValue无法在javascript代码中运行

时间:2013-10-21 08:27:06

标签: javascript jquery html

这是关于javascript .value.defaultValue

的简单问题

这是我的第一个HTML

<input id="txt" value="Hello">
</input>
<input type="button" id="btn" />

相应的js

$('#btn').click(function(){
    alert('Old Value '+ document.getElementById('txt').defaultValue);
    alert('New value ' + document.getElementById('txt').value);
});

所以上面的html默认有Hello,现在如果我删除了几个字符并将其设为Hel并按下按钮,我得到的输出是Old Value Hello并且New value Hel

以下是demo

现在这是我的第二个HTML

<input id="txt" ></input>
<input type="button" id="btn" />

和相应的js

$('#txt').val('Hello');
$('#btn').click(function(){
    alert('Old Value '+ document.getElementById('txt').defaultValue);
    alert('New value ' + document.getElementById('txt').value);
});

如果我删除了几个字符并将其设为Hel并按下按钮,那么我得到的输出是Old ValueNew value Hel

以下是demo

任何人都可以解释为什么两个例子中defaultValue的区别

1 个答案:

答案 0 :(得分:2)

因为默认值是由输入字段的初始值设置的...在第二种情况下是空字符串...您正在使用不会更新defaultValue的脚本来更改值

defaultValue:

  

最初在创建此内容的HTML中指定的默认值   对象

更新值

后,您可以使用.prop()更新defaultValue的值
$('#txt').val('Hello').prop('defaultValue', 'Hello');

$('#txt').val('Hello').prop('defaultValue', function(){
    return this.value
});

演示:Fiddle