Как выполнить проверку minCheckBox на jQuery Validate Engine? - PullRequest
0 голосов
/ 25 февраля 2019

В форме с тремя флажками мне нужно подтвердить, что хотя бы один из них был отмечен.Компания, в которой я работаю, использует 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">

Uncaught Error: Синтаксическая ошибка, нераспознанное выражение: input [имя = соглашение []]

Нижняя строка:

  • При первом подходе проверка выполняетсяработать должным образом, но я получаю значение последнего ввода только после отправки формы.
  • При втором подходе проверка завершается неудачно с ошибкой Javascript, но я должен получить все входные данные в массиве agreement[].

Я что-то здесь упускаю?Как бы вы сделали эту проверку с помощью jQuery Validation Engine?

Примечание. При необходимости я могу предоставить более подробную информацию и не могу изменить библиотеку в данный момент.

1 Ответ

0 голосов
/ 25 февраля 2019

Выглядит хорошо для меня, я что-то упустил?

$('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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...