Плагин проверки jQuery - проблема с переключателями - PullRequest
1 голос
/ 06 февраля 2011

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

У меня есть следующий код:

$("#theForm").validate({
  "rules": {
    "r1" : "required"
  },
  "messages" : {
    "r1" : {
       "required" : "foo"
    }
  }
});
............
............
<input type="radio" name="r1" value="1" /> 
<input type="radio" name="r1" value="2" /> 
<input type="radio" name="r1" value="3" />

Проверка работает, но между первой и второй переключателем отображается сообщение «foo».Это не будет делать.Я хочу его после последней радиокнопки.

Не проблема, подумал я, добавляю свой собственный ярлык после последней радиокнопки:

<input type="radio" name="r1" value="1" /> 
<input type="radio" name="r1" value="2" /> 
<input type="radio" name="r1" value="3" />
<label for="r1" class="error" style="display:none">bar</label>

Работает, но вместо этого отображается сообщение "bar",Я не хочу этого, я хочу, чтобы все мои сообщения были в правилах проверки, так как мне это сделать?

Как я могу поместить сообщение об ошибке после последнего переключателя и заставить его использоватьсообщение из правил (то есть "foo")?

Ответы [ 2 ]

6 голосов
/ 06 февраля 2011

Вы можете использовать функцию обратного вызова errorPlacement при настройке параметров.http://docs.jquery.com/Plugins/Validation/validate#toptions

errorPlacement: function(error, element) {
   if (element.attr('type') === 'radio') {
      error.insertAfter(
          element.siblings('input[type="radio"][name="' + element.attr('name') + '"]:last'));
   }
   else {
      error.insertAfter(element);
   }
}
0 голосов
/ 04 марта 2015

Просто поместите метку в любом месте и в функции errorPlacement:

errorPlacement: function(error, element) {
            if (element.attr("name") == "sample") {
                error.html($("#sampleErrorMessageBox"));
            } else {
                error.insertAfter(element);
            }
}

Это сработало для меня.

http://jsfiddle.net/t53w17mj/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...