2013-03-03 364 views
2

我有一個問題。當我選擇複選框時,系統工作正常,總值發生了變化,但只要我修改了文本輸入,它就會變爲0.我需要排除此文本框輸入以更改值。只選擇getElementsByTagName中的複選框輸入,排除文本框輸入

下面是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/

回答

3

添加if(this.type=='text')在onChange處理的第一線檢測輸入類型

+0

我說,如果(this.type!= '文本')上的onchange的頂部,非常感謝哥們! :) – 2013-03-03 22:10:08

3

試試

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

請檢查更新小提琴here

+0

我在哪裏可以添加此行? – 2013-03-03 22:23:45

+0

我試圖分配這樣的東西,但它不工作:var input = document.getElementsByTagName(「input」)。type(「checkbox」); @AshReva – 2013-03-03 22:31:43

+0

在初始化var輸入變量後,使用if(input).type ==「checkbox」)。在你的for循環開始之前使用這個 – DevelopmentIsMyPassion 2013-03-03 22:32:59