我有两个字段,其中第二个字段具有值,并且在第一个字段中输入的任何值都将添加到第二个字段。
现在,当添加它并删除在第一个字段中输入的数字(用退格键删除)时,第二个字段的值不会返回到它的原始值。我该怎么做?此外,我不介意在这种情况下更好地接近onkeyup
HTML:
First: <input type="text" id="vala" onkeyup="sum();" />
Second: <input type="text" id="valb" value="12" />
JS:
function sum() {
var first = document.getElementById('vala').value;
var second = document.getElementById('valb').value;
var result = parseInt(first) + parseInt(second);
if (!isNaN(result)) {
document.getElementById('valb').value = result;
}
}
工作小提琴代表: http://jsfiddle.net/wcvqby2g/
答案 0 :(得分:3)
我认为你正在寻找
function sum() {
var first = document.getElementById('vala').value;
var second = document.getElementById('valb').defaultValue;
var result = (parseInt(first) || 0) + parseInt(second);
document.getElementById('valb').value = result;
}
defaultValue
property of the input访问输入的原始值,即value
属性中指定的值。
答案 1 :(得分:2)
被覆盖了。
您可以存储原始值:
First: <input type="text" id="vala" onkeyup="sum();" />
Second: <input type="text" id="valb" value="12" data-default-value="12" />
...并将其添加到您的JS:
else {
document.getElementById('valb').value = document.getElementById('valb').dataset.defaultValue;
}
这是一个小提琴:http://jsfiddle.net/andunai/wcvqby2g/5/
请注意,data-default-value
变为dataset.defaultValue
答案 2 :(得分:0)
这是有效的解决方案 -
First: <input type="text" id="vala" onkeyup="sum();" />
Second: <input type="text" id="valb" value="12" />
<script>
var second1=document.getElementById('valb').value;
var first1=document.getElementById('vala').value;
function sum() {
var first = document.getElementById('vala').value;
var second = document.getElementById('valb').value;
var result = parseInt(first) + parseInt(second1);
if (!isNaN(result)) {
document.getElementById('valb').value = result;
}
if(first == first1)
{
document.getElementById('valb').value= second1;
}
}
</script>