如何在 jQuery 验证引擎上执行 minCheckBox 验证?
How to perform a minCheckBox validation on jQuery Validate Engine?
在具有三个复选框的表单中,我需要验证至少其中一个已被选中。我工作的公司正在使用 jQuery Validation Engine。我正在使用最新的 version/release 进行测试。
根据库要求,我的代码应该如下所示:
<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">
Uncaught Error: Syntax error, unrecognized expression:
input[name=agreement[]]
底线:
- 使用第一种方法验证工作正常,但我只在发布表单后获得最后输入的值。
- 使用第二种方法验证失败并出现 Javascript 错误,但我应该获取数组
agreement[]
. 上的所有输入
我是不是漏掉了什么?您将如何使用 jQuery 验证引擎进行此验证?
注意:如果需要,我可以提供更多详细信息,此时我无法更改库。
我觉得不错,我是不是错过了什么?
$('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>
在具有三个复选框的表单中,我需要验证至少其中一个已被选中。我工作的公司正在使用 jQuery Validation Engine。我正在使用最新的 version/release 进行测试。
根据库要求,我的代码应该如下所示:
<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">
Uncaught Error: Syntax error, unrecognized expression: input[name=agreement[]]
底线:
- 使用第一种方法验证工作正常,但我只在发布表单后获得最后输入的值。
- 使用第二种方法验证失败并出现 Javascript 错误,但我应该获取数组
agreement[]
. 上的所有输入
我是不是漏掉了什么?您将如何使用 jQuery 验证引擎进行此验证?
注意:如果需要,我可以提供更多详细信息,此时我无法更改库。
我觉得不错,我是不是错过了什么?
$('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>