2014-02-19 225 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沒有被緩存嗎? –

相關問題