在具有三个复选框的表单中,我需要验证至少其中一个已被选中。我工作的公司正在使用jQuery Validation Engine。我正在测试最新版本。
根据库要求,我的代码应类似于:
<input type="checkbox" name="agreement" value="1" id="agreement_0" class="validate[minCheckbox[1]] checkbox">
<input type="checkbox" name="agreement" value="1" id="agreement_1" class="validate[minCheckbox[1]] checkbox">
<input type="checkbox" name="agreement" value="1" id="agreement_2" class="validate[minCheckbox[1]] checkbox">
如果我这样做的话,确实可以进行验证,并且至少需要其中之一,但是我的$_POST
仅包含其中的最后一个,我想这是因为它们共享相同的名称(我认为这是错误)。这是minCheckbox的文档。
如果我改用以下方法(据我所知是正确的),那么我将遇到Javascript错误:
<input type="checkbox" name="agreement[]" value="1" id="agreement_0" class="validate[minCheckbox[1]] checkbox">
<input type="checkbox" name="agreement[]" value="1" id="agreement_1" class="validate[minCheckbox[1]] checkbox">
<input type="checkbox" name="agreement[]" value="1" id="agreement_2" class="validate[minCheckbox[1]] checkbox">
未捕获的错误:语法错误,无法识别的表达式: 输入[名称=协议[]]
底线:
agreement[]
上的所有输入。我在这里错过了什么吗?您将如何使用jQuery Validation Engine进行此验证?
注意:如果需要,我可以提供更多详细信息,并且目前无法更改库。
答案 0 :(得分:0)
对我很好,我想念什么吗?
$('form').validationEngine();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jQuery-Validation-Engine/2.6.4/jquery-1.8.2.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jQuery-Validation-Engine/2.6.4/jquery.validationEngine.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jQuery-Validation-Engine/2.6.4/languages/jquery.validationEngine-en.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jQuery-Validation-Engine/2.6.4/validationEngine.jquery.css"/>
My Form
<form>
<input type="checkbox" name="agreement[]" value="1" id="agreement_0" class="validate[minCheckbox[1]] checkbox">A
<input type="checkbox" name="agreement[]" value="1" id="agreement_1" class="validate[minCheckbox[1]] checkbox">B
<input type="checkbox" name="agreement[]" value="1" id="agreement_2" class="validate[minCheckbox[1]] checkbox">C
</form>