2014-02-19 226 views
0

我试图在页面底部显示交易总和。Javascript功能不能在火狐浏览器或Safari浏览器中工作

function doTotal() { 
    var Stuff = document.getElementsByTagName("input"); 
    var theTotal = new Number(0); 
    for (var i = 0; i < Stuff.length; i++) { 
     if (Stuff[i].getAttribute('type') == 'text') { 
      if ((Stuff[i].value != '') && (IsNumeric(Stuff[i].value) == true) && (Stuff[i].name.substr(0, 8) == 'txtValue')) { 
       theTotal = theTotal + parseFloat(Stuff[i].value); 
      } 
     } 
    } 
    document.getElementById("tdTotal").innerHTML = "R " + theTotal.toFixed(2); 
    frm.txtTotal.value = theTotal.toFixed(2); 
    //alert(theTotal); 
} 
+0

你是怎么调用这个函数的? – Oliver

+0

\t TOTAL: \t – user3327623

+0

Response.Write““ – user3327623

回答

0

编辑:

OFC林愚蠢的,它不能因为从输入值的工作始终是字符串。所以我改变了条件。现在,它应该工作:

function doTotal() { 
    var stuff = document.getElementsByTagName("input"); 
    var theTotal = 0; 
    for (var i = 0; i < stuff.length; i++) { 
     if (stuff[i].getAttribute('type') == 'text') { 
      if ((stuff[i].value != '') && !isNaN(stuff[i].value) && (typeof stuff[i].name.substr(0, 8) === "string")) { 
       theTotal += parseFloat(stuff[i].value); 
      } 
     } 
    } 
    // document.getElementById("tdTotal").innerHTML = "R " + theTotal.toFixed(2); 
    // frm.txtTotal.value = theTotal.toFixed(2); 
    alert(theTotal); 
} 

放在那儿试试:http://jsfiddle.net/windkiller/9dvRS/

EDIT2:

调试它,所以你可以看到什么条件didnt通错误:

功能doTotal() var stuff = document.getElementsByTagName(“input”); var theTotal = 0;

 var i = 0; 

     alert(stuff[i].getAttribute('type') == 'text'); 
     alert(stuff[i].value != ''); 
     alert(!isNaN(stuff[i].value)); 
     alert(typeof stuff[i].name.substr(0, 8) === "string"); 
} 
+0

我在firefox + G chrome中测试了它,它可以工作(警告在任何页面上输入数字的总和)。你确定你的JavaScript没有被缓存吗? –

相关问题