我正在开展一项有多项调查的项目。其中一个包含几个问题,用户必须输入数字输入作为他们的响应,如果按下提交按钮时响应的总和超过100%,他们将得到错误消息。 (该调查包含网页中的多个问题。)。
我正在为这样一个有数字输入字段的问题分享回复的HTML
<div class="input_row cell_wrapper row col s12" question-input-
template="number" question-input-id="qid:258 group_id:1 input_value:1">
<div class="input-field col s12">
<input name="qid:258 group_id:1 input_value:1" type="number"
class="validate">
</div>
</div>
<div class="input_row cell_wrapper row col s12" question-input-
template="number" question-input-id="qid:258 group_id:1 input_value:2">
<div class="input-field col s12">
<input name="qid:258 group_id:1 input_value:2" type="number"
class="validate">
</div>
</div>
<div class="input_row cell_wrapper row col s12" question-input-
template="number" question-input-id="qid:258 group_id:1 input_value:3">
<div class="input-field col s12">
<input name="qid:258 group_id:1 input_value:3" type="number"
class="validate">
</div>
</div>
我正在尝试使用jQuery将上述文本输入字段的总和验证为100%(不超过该值)。请注意,这些字段不是特定表单的一部分。我所研究和提及的内容几乎都基于表格,例如StackExchange和StackOverflow。
有什么想法吗?
它会起作用吗?
var sumOfValues = 0;
$(".validate").each(function(){
sumOfValues += $(this).val();
});
if(sumOfValues == 100)
{
//alert message
}
else
{
//alert message
}
答案 0 :(得分:0)
您需要将值转换为数字。否则你是连接字符串,而不是添加数字。
sumOfValues += parseInt($(this).val(), 10);
答案 1 :(得分:0)
使用此jquery脚本。
$(document).ready(function(){
var dist = 100;
var numTotal = 0;
$("input[type='number']").change(function(){
var numTotal = 0;
$("input[type='number']").each(function(){
var textVal = $(this).val()
if ($.trim(textVal) != "") {
numTotal = parseFloat(textVal) + parseFloat(numTotal);
}
});
if (parseFloat(numTotal) > parseInt(dist)) {
alert("Total not exceed by 100.");return false;
}
})
});