2016-09-10 10 views
0

私は確かに謝罪はかなり単純なjavascriptの質問ですが、コストをテーブルに入力するたびに、つまりフォームを送信する合計ボタン。Noob Javascript自動合計

function totalIt() { 
    var qtys = document.getElementsByName("qty[]"); 
    var total=0; 
    for (var i=1;i<=qtys.length;i++) { 
    calc(i); 
    var price = parseFloat(document.getElementById("price"+i).value); 
    total += isNaN(price)?0:price; 
    } 
    document.getElementById("total").value=isNaN(total)?"0.00":total.toFixed(2);       
}  

http://jsfiddle.net/mplungjan/jDfFU/

+0

'cost'入力フィールドの' change'イベントから関数を実行します。 – Barmar

+0

テーブルにコストを追加しているコードから関数を呼び出すだけです。それ以上の情報がなければ、私たちは本当にあなたにそれより良い答えを与えることはできません。コストがユーザによって「入力」に入力されている場合は、「変更」(および/またはおそらくは「入力」)イベントをフックします。 –

+0

私は興味があります。フィンプルはmplungjanのアカウントにありますが、あなたは[mplungjan](http://stackoverflow.com/users/295783/mplungjan)であるとは思われません。 –

答えて

1

コストは、あなたのセットアップコードでは、入力されているところqtyフィールドは、イベント(あなたがすぐにフィードバックをしたい場合は、おそらくinput)だけchangeまでtotalItをフック、している場合:最近のブラウザで

var qtys = document.getElementsByName("qty[]"); 
var i; 
for (i = 0; i < qtys.length; ++i) { 
    qtys[i].addEventListener("change", totalIt, false); 
    qtys[i].addEventListener("input", totalIt, false); 
} 

、あなたがinputをフックならば、あなたはchangeをフックする必要はありません。上記の方法では、changeをフックすることにより、古いブラウザの可能性を考慮して、inputをサポートしない場合があります。