我有代码,它可以使用javascript两个文本框值

时间:2013-03-26 12:21:34

标签: javascript html sum

我有代码可以使用javascript将两个文本框值相加但问题是,当我输入recamt文本框值和javascript计数一次又一次recamt文本框值时,它应该只计数一个时间recamt文本框值不是一次又一次?

<script type="text/javascript">
function B(){
document.getElementById('advance').value
=(parseFloat(document.getElementById('advance').value))+
(parseFloat(document.getElementById('recamt').value));
return false;
}  
</script>

<input class="input_field2" type="text" readonly name="advance" 
id="advance" value="50" onfocus="return B(0);" /><br />
<input class="input_field2" type="text" name="recamt" id="recamt">

2 个答案:

答案 0 :(得分:0)

您可以在只读文本字段中保留属性以保留旧值:

function B()
{
    var adv = document.getElementById('advance'),
    rec = document.getElementById('recamt');

    if (typeof adv.oldvalue === 'undefined') {
        adv.oldvalue = parseFloat(adv.value); // keep old value
    }

    adv.value = adv.oldvalue + parseFloat(rec.value));
    rec.value = '';

    return false;
}

答案 1 :(得分:0)

每次使用新值聚焦只读输入时,您都在调用sum函数。如果您只想将其添加到原始值,则需要将其存储在某个位置。

HTML:

<input type="text" id="advance" readonly="readonly" value="50" /><br />
<input type="text" id="recamt">

JS:

var advanceBox = document.getElementById('advance');
var originalValue = advanceBox.value;

advanceBox.onclick = function() {
    this.value = parseFloat(originalValue) +
        parseFloat(document.getElementById('recamt').value);

    return false;
};

http://jsfiddle.net/hQbhq/

注意:

  • 您应该使用javascript绑定处理程序,而不是HTML。
  • javascript需要在页面上的HTML之后或者在window.load处理程序内部存在,否则它将无法找到advanceBox