在onkeyup之后将javascript字段返回到默认值

时间:2014-12-04 19:07:02

标签: javascript

我有两个字段,其中第二个字段具有值,并且在第一个字段中输入的任何值都将添加到第二个字段。 现在,当添加它并删除在第一个字段中输入的数字(用退格键删除)时,第二个字段的值不会返回到它的原始值。我该怎么做?此外,我不介意在这种情况下更好地接近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/

3 个答案:

答案 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属性中指定的值。

updated fiddle

答案 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>