我有代码可以使用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">
答案 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;
};
注意:
advanceBox
。