3

問題が 1 つあります。チェックボックスを選択するとシステムは正常に動作し、合計値が変更されますが、テキスト入力を変更するとすぐに 0 に変更されます。このテキスト ボックス入力を値の変更から除外する必要があります。

ここにhtmlがあります:

       <input type="checkbox" id="15000"/>$15000<br/>
       <input type="checkbox" id="9400"/>$9400<br/>
       <label>Quantity</label><input class="text" type="text" maxlength="3" size="2" value="1" name="qty"></input>

       <div id="total">$5000</div>

これがJavaScriptです:

  var input = document.getElementsByTagName("input");
  var total = document.getElementById("total");

  var prev;

  for(i=0;i<input.length;i++){
  input[i].onchange = function(){
    if(this.checked){
    $("#total").fadeOut(300);
    $("#total").fadeIn(300);
    prev=parseFloat(total.innerHTML.replace(/[^0-9\,]+/g,"")) + parseFloat(this.id);
         total.innerHTML = "$ " + prev.formatMoney(0, ',', '.');
    }else{
     $("#total").fadeOut(300);
     $("#total").fadeIn(300);
     prev=parseFloat(total.innerHTML.replace(/[^0-9\,]+/g,"")) - parseFloat(this.id);
         total.innerHTML = "$ " + prev.formatMoney(0, ',', '.');
    }
  }
}

これがフィドルです:http://jsfiddle.net/M7My9/1/

4

2 に答える 2

5

以下をお試しください

if(document.getElementsByTagName("input").type == "checkbox")

ここで更新されたフィドルを確認してください

于 2013-03-03T22:07:55.387 に答える
3

if(this.type=='text')入力のタイプを検出する onchange ハンドラの最初の行に追加します。

于 2013-03-03T22:05:31.767 に答える