jQuery验证问题。错误信息弹出错误的地方

时间:2011-04-15 05:44:58

标签: jquery asp.net-mvc-2 jquery-validate

我的表单代码是这样的(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 范围内,并且我已经在选项的errorPlacement部分内尝试了许多变体来验证。无论如何,错误消息始终出现在同一位置。

这对我来说是正确的,所以如果有人知道我在哪里做错了,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果您不希望错误出现在标签标签内,请输入errorPlacement函数:

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