我正在使用jQuery表单向导插件。我有 20 个问题,每个问题都有三个答案。每个答案都可以有一个权重。对于每个问题,答案的总权重必须等于 10。
<fieldset id="first" class="step">
<input type="text" size="2" maxlength="2" value="" name="question1[]" class="required"/>A: Inspiring others with a compelling vision for change.<br />
<input type="text" size="2" maxlength="2" value="" name="question1[]" />B: Engaging others to buy-into the change.<br />
<input type="text" size="2" maxlength="2" value="" name="question1[]" />C: Executing a project plan and managing accountabilities.<br />
<label for="question1[]" class="error" style="display:none;">Your values must add up to 10!</label>
</fieldset>
这基本上是一个性格评估。假设我觉得 A 和 C 不适用,我会为 A 输入 10。
有什么方法可以检查每个字段集是否加起来为 10,如果没有则发送错误消息?
我正在使用 jQuery 验证插件,但这似乎有点过于具体,因为我知道它会检查数字等。
我试图在以下内容中添加一些内容,甚至获得通过所需的检查,但我不确定从这里去哪里:
$(document).ready(function() {
$("#Form").validate({
submitHandler: function(form) {
form.submit();
}
});
$("#Form input[name='question1']").each(function() {
$(this).rules("add", {
required: true,
maxlength: 2,
messages: {
required: "Required",
minlength: jQuery.format("Max length of {2} characters.")
}
});
});
});
我还发现 jQuery validate 必须编辑一个函数来容纳数组。我更改了以下功能:
checkForm: function() {
this.prepareForm();
for (var i=0, elements=(this.currentElements = this.elements()); elements[i]; i++ ) {
if (this.findByName(elements[i].name).length != undefined &&
this.findByName( elements[i].name ).length > 1) {
for (var cnt = 0; cnt < this.findByName( elements[i].name ).length; cnt++) {
this.check( this.findByName( elements[i].name )[cnt] );
}
}
else {
this.check( elements[i] );
}
}
return this.valid();
}
我也试过这个:
$(document).ready(function(){
$("#Form").validate({
rules: {
question1: {
required: true
}
},
submitHandler: function(form) {
form.submit();
}
});
});
这些似乎都没有给我一个“必需的”错误。控制台中没有错误。当按下“下一步”按钮时,我需要在每个问题上验证这一点。下一个按钮确实有type=submit
,所以理论上它至少应该看到我说问题 1 必须是必需的,但无济于事。
我也试过这个:
$().ready(function() {
// validate the comment form when it is submitted
$("#Form").validate({
rules: {
"question1[]": "required"
},
messages: {
"question1[]": "Input is required",
}
});
});
但它继续到下一个字段集,没有错误。