2011-12-14 91 views
0

我有一个<input type="text" name="value"/>在一个循环中。比较输入值在JS

<%for (i=0;i<10;i++){%> 
<input type="text" name="value"/> 
<%}%> 
<input type="button" name="submit"> 

在提交时,我需要检查的输入变量(10盒)不应超过100

值,请让我知道如何调用一个JS和发送这些10个值它和比较与100

+1

究竟是什么问题? [如何获取DOM元素的引用?](https://developer.mozilla.org/en/Gecko_DOM_Reference/Introduction#How_Do_I_Access_the_DOM.3F)[如何访问它们的值](http://stackoverflow.com/questions/6069146 /对获得价值 - 的 - 文本框,在JavaScript的)? [如何比较两个数字?](https://developer.mozilla.org/en/JavaScript/Guide/Expressions_and_Operators#Comparison_Operators) –

回答

1

要给予适当的JavaScript答案:

获取到您的窗体的引用:

var form = document.getElementById('formId'); 

绑定的事件处理程序提交事件,例如:

form.onsubmit = function() {...}; 

的手柄内,得到所有输入元素的引用与名字value

var inputs = this.elements['value']; 

遍历元素,总结他们的价值观:

var sum = 0; 
for(var i = 0, len = inputs.length; i < len; i++) { 
    sum += +inputs[i].value; 
} 

停止默认的动作,如果总和大于100:

if(sum > 100) { 
    return false; 
} 

完整示例:

var form = document.getElementById('formId'); 

form.onsubmit = function() { 
    var inputs = this.elements['value'], 
     sum = 0, i, len; 

    for(i = 0, len = inputs.length; i < len; i++) { 
     sum += +inputs[i].value; 
    } 

    if(sum > 100) { 
     return false; 
    } 
}; 
1

裹一切都在一个div为范围的缘故

<div id="inputs"> 
    // Your code 
</div> 

然后可以循环

总和
total = 0; 
$("#inputs input").each(function(){ 
    total += parseInt($(this).val()); 
}); 
alert("You have a total value of" + total); 
if(total > 100){ 
    alert("It's more than 100, I should do something here"); 
} 
+1

我没有看到提及的jQuery ... –

+0

@FelixKling如果他使用js,他可以使用jQuery。将它添加到项目中绝不是一件坏事,如果他不能使用jQuery,他会在这里发表评论。 – marcgg

0

扩展上@ marcgg的回答是:

$("form").submit(function() { 
    total = 0; 
    $("#inputs input").each(function(){ 
    total += parseInt($(this).val()); 
    }); 
    alert("You have a total value of" + total); 
    if(total > 100){ 
    alert("It's more than 100, I should do something here"); 
    return false; 
    } 
}); 
+0

imho'e.preventDefault()'会比'return false'更好 – marcgg