Проблема с проверкой jQuery.Сообщение об ошибке появляется в неправильном месте - PullRequest
0 голосов
/ 15 апреля 2011

Мой код формы выглядит следующим образом (MVC 2)

<% using (Html.BeginForm()){ %>
  <%: Html.Serialize("regData", Model)%>
  <div class="RegistrationGroup">
    <p><label for="FirstName">First name</label>  <%: Html.EditorFor(x => x.FirstName) %><span class="ErrorMessage"></span></p>
    <p><label for="LastName">Last name</label>  <%: Html.EditorFor(x => x.LastName) %><span class="ErrorMessage"></span></p>
  </div>
  <div class="RegistrationGroup">
    <input name="nextButton" type="image" src="../../Images/button_next.png" alt="Neste" />
  </div>
<% } %>

Затем в моем скрипте у меня есть следующее:

<script type="text/javascript">
$(function () {
  $("#Email").focus();
  $("form").validate({
    rules: {
      FirstName: {
        required: true,
        minlength: 2
      },
      LastName: {
        required: true,
        minlength: 2
      }
    },
    errorPlacement: function (error, element) {
      error.appendTo(element.next());
    }
  });
});
</script>

Моя проблема заключается в том, что все ошибки проверки появляются междуярлык и текстовое поле и выглядит довольно плохо.Я хочу поместить сообщение об ошибке в ErrorMessage span, который ставится сразу после фактических элементов ввода, и я попробовал множество вариантов внутри errorPlacement части параметров для проверки.Сообщение об ошибке всегда появляется в одном и том же месте, независимо от того.

Мне это кажется правильным, поэтому, если кто-нибудь знает, где я сделал неправильный поворот, я буду благодарен.

1 Ответ

1 голос
/ 15 апреля 2011

Если вы не хотите, чтобы ошибка появлялась внутри тегов меток, добавьте в свою функцию errorPlacement:

element.next().append(error.text());
...