这是关于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 HelloNew 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的差异

最佳答案

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

defaultValue:


  最初在创建此HTML的HTML中指定的默认值
  宾语。


您可以在更新值后使用.prop()更新defaultValue的值

$('#txt').val('Hello').prop('defaultValue', 'Hello');


要么

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


演示:Fiddle

关于javascript - defaultValue在javascript代码中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19489475/

10-12 00:06