0

这是关于 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

这是演示

现在这是我的第二个 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

这是演示

任何人都可以解释为什么两个示例中 defaultValue 的差异

4

1 回答 1

2

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

默认值:

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

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

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

或者

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

演示:小提琴

于 2013-10-21T08:29:35.570 回答