0

javascriptを使用して2つのテキストボックス値を合計できるコードがありますが、問題は、recamtテキストボックス値とjavascriptカウントに金額を入力すると、テキストボックス値をrecamt1回だけカウントする必要があること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">
4

2 に答える 2

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;
}
于 2013-03-26T12:27:55.663 に答える
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/

ノート:

  • HTML ではなく JavaScript でハンドラーをバインドする必要があります。
  • JavaScript は、ページの HTML の、または window.load ハンドラー内に存在する必要があります。そうしないと、advanceBox.
于 2013-03-26T12:36:38.793 に答える