2017-09-15 68 views
-1

我有一個可摺疊的按鈕,大約10個輸入類型數字字段帶有最大和最小屬性。像這樣數字輸入類型的所有屬性的總和

<div id="demoX1" class="collapse"> 
<table> 
<tr><td>ABC</td><td><input type="number" min="0" max= "1" onblur="getTotal()"name="cm"></td> 
</tr> 
<tr><td>XYZ</td> <td><input type="number" min="0" max= "3" onblur="getTotal()"name="cm"></td> 
</tr> 
<tr><td>PQR</td> <td><input type="number" min="0" max="1" onblur="getTotal()" name="cm"></td> 
</tr> 
</table> 
</div> 
<input type= "text" id="total1" disabled/> 

我想獲得所有最大屬性值的總和。此外,如果可以禁用運行時的任何輸入,並忽略其總和值。我試圖嵌入的onblur在他們每個人的功能,下面使用功能相同的:的onblur()

var arr1 = document.getElementsByName('cm').getAttribute("max"); 
var overAll= 0; 
for(var i=0;i<arr1.length;i++){ 
    if(parseInt(arr1[i].value)) 
     overAll += parseInt(arr1[i].value); 
} 
document.getElementById('total1').value = overAll; 
+1

這裏有沒有PHP,沒有垃圾郵件無關的標籤。 – Barmar

回答

0

getElementsByName返回一個集合,但你只能叫getAttribute()一個單獨的元素。您需要在循環中執行此操作,而不是在分配給arr1時執行此操作。

而你想要的值是max屬性,而不是value

var arr1 = document.getElementsByName('cm'); 
 
var overAll = 0; 
 
for (var i = 0; i < arr1.length; i++) { 
 
    var max = arr1[i].getAttribute('max'); 
 
    if (max) { 
 
    overAll += parseInt(max, 10); 
 
    } 
 
} 
 
document.getElementById('total1').value = overAll;
<div id="demoX1" class="collapse"> 
 
    <table> 
 
    <tr> 
 
     <td>ABC</td> 
 
     <td><input type="number" min="0" max="1" name="cm"></td> 
 
    </tr> 
 
    <tr> 
 
     <td>XYZ</td> 
 
     <td><input type="number" min="0" max="3" name="cm"></td> 
 
    </tr> 
 
    <tr> 
 
     <td>PQR</td> 
 
     <td><input type="number" min="0" max="1" name="cm"></td> 
 
    </tr> 
 
    </table> 
 
</div> 
 
<input type="text" id="total1" disabled/>

+0

明白了。謝謝。我們也可以在運行時禁用它們嗎?所以它不會加起來。就像在運行時設置一個禁用的標記,然後在這個腳本中添加一個條件來禁用禁用的值。 –

+0

當然。你可以做'if(!arr [i] .disabled)' – Barmar

相關問題