比较JS中的输入值

时间:2011-12-14 09:19:46

标签: javascript html jsp

我在循环中有一个<input type="text" name="value"/>

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

在提交时我需要检查输入变量(10个框)不应超过100的值。

请告诉我如何调用JS并将这10个值发送给它并将总和与100进行比较。

3 个答案:

答案 0 :(得分: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 :(得分: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;
    }
};

答案 2 :(得分: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;
   }
});