我在循环中有一个<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进行比较。
答案 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;
}
});