У меня есть таблица, которая представляет собой форму ввода для счета-фактуры, количество строк является динамическим, в зависимости от того, сколько товаров пользователь вводит в счет-фактуру,
количество полей ввода в строке всегда одинаково, и все они представляют одни и те же вещи, поэтому имеют одинаковые правила проверки.
<form id="myform" name="myform" action="" method="">
<table>
<tr>
<td>
<input type="text" name="amount_id1" id="amount_id1" value=""/>
</td>
<td>
<input type="text" name="price_id1" id="amount_id1" value=""/>
</td>
....
</tr>
<tr>
<td>
<input type="text" name="amount_id2" id="amount_id2" value=""/>
</td>
<td>
<input type="text" name="price_id2" id="price_id2" value=""/>
</td>
.....
</tr>
....
</table>
</form>
Я использую плагин проверки jQuery:
плагин проверки
Теперь я хочу обернуть все ошибки в ОДИН контейнер, потому что отображать их рядом с каждым полем ввода ужасно грязно.
Я знаю, что этого можно достичь с помощью настроек оболочки и errorLabelContainer
Но я не хочу отображать повторяющиеся сообщения:
на самом деле бесполезно отображать «количество должно быть положительным числом» x10 раз для каждого из 10 полей, в которых пользователь допустил ошибку ...
Итак, что я хочу, для каждого вида поля ввода (будь то сумма, цена, скидка, НДС или что-то еще)
если есть один неверный ввод, я хочу отобразить 1 сообщение об ошибке такого рода ошибки
Пример:
количество требуется и цифры как правила класса.
Если пользователь забывает ввести сумму в разных местах, я хочу 1 сообщение в errorcontainer, в котором говорится: «поля суммы обязательны»
если рядом с этим он вводит "char или что-то не-цифра" в поле количества, я хочу дополнительное сообщение об ошибке, говорящее: "поля количества должны быть только цифрами" '
Еще один способ сказать что-то:
если сообщение уже отображается, не отображать его,
если это не так, покажите его.
Чтобы помочь пользователю показать, какие поля являются недействительными, я просто использую настройки выделения, отмены выделения, добавляя класс к рассматриваемому полю, что дает ему красную рамку. Это работает как шарм.
Я пытался использовать showErrors, invalidHandler, errorPlacement, но я не могу заставить вещи работать. даже не близко. Не существует массива / объекта, который содержит текущие недопустимые элементы для всей формы. Однако существуют errorMap и errorList, которые содержат ошибки этапа проверки CURRENT. это означает, что половина времени содержит только ошибки для одного поля из-за эффектов фокусировки / размытия. Да, я знаю, что отключение всех параметров, чтобы проверка запускалась только при попытке отправки формы, означало бы, что errorMap / errorList всегда будет содержать все ошибки для всей формы. Но на самом деле это не вариант imo / myBoss'sOpinion. Я попытался покопаться в свойствах валидатора, в источнике валидатора, чтобы найти что-то, что могло бы помочь, но, похоже, я ничего не могу найти ..
Надеюсь, я объяснил все достаточно хорошо, чтобы кто-то помог мне в этом, потому что я на какое-то время ломал голову над этим.
Любая помощь / предложения / идеи приветствуются:)