Отображение пользовательского элемента и содержимого с помощью плагина проверки jQuery

#jquery #plugins #validation

#jquery #Плагины #проверка

Вопрос:

Я пытался адаптировать подключаемый модуль Validator к своим потребностям (http://docs.jquery.com/Plugins/Validation )

Подключаемый модуль отображает сообщение, когда что-то неверно. Однако содержимое этого сообщения находится внутри самого js-файла (я могу изменить его с помощью свойства «message:»). Поскольку я создаю сайт на нескольких языках, для этого мне понадобилось бы иметь несколько файлов .js, в которых я бы изменил только текст. Я не хочу этого делать, поскольку это является кандидатом на проблемы с ремонтопригодностью.

Я хочу, чтобы каждое правило принимало класс или идентификатор в качестве аргумента, а ошибка отображалась в этом конкретном элементе, который был бы скрыт с помощью CSS (обратите внимание, что я упростил код только для примера)

 <label>Bla:</label>
<input type="text" id="username"/>
<span class="hiddenError" id="requireUser" style="display:none">Write yo name</span>
<span class="hiddenError" id="lengthUser" style="display:none">Write at least 5 characters long</span>
  

Итак, вместо жесткого кодирования сообщений в js (или HTML, я не хочу помещать инициализацию в HTML, пожалуйста …) Я хочу, чтобы эти .hiddenError отображались в зависимости от ошибки. Я не уверен, но я думаю, что это как-то связано с

 errorElement: "label",  
errorContainer: $( [] ),  
errorLabelContainer: $( [] ),  
  

но я не смог заставить их работать.

Есть ли способ сделать это? Я пытался модифицировать сам плагин, но работать с более чем тысячей строк кода было так же сложно, как самому написать плагин со всеми этими характеристиками.

Заранее большое спасибо за ваши ответы

Ответ №1:

На мой взгляд, это был бы плохой способ сделать i18n, загрязняя ваш HTML множеством скрытых элементов.

Вам лучше создать объектный литерал, который сопоставляет название сообщений с кодом языка.