我的表单代码是这样的(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
部分内尝试了许多变体来验证。无论如何,错误消息始终出现在同一位置。
这对我来说是正确的,所以如果有人知道我在哪里做错了,我将不胜感激。
答案 0 :(得分:1)
如果您不希望错误出现在标签标签内,请输入errorPlacement函数:
element.next().append(error.text());