2013-03-03 92 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