jQuery验证问题。错误消息是在错误的地方
我的表单代码是这样的(MVC 2)jQuery验证问题。错误消息是在错误的地方
<% 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
的errorPlacement
部分内容进行验证。无论如何,错误消息始终显示在同一个点上。
这看起来对我来说是正确的,所以如果有人知道我在这里做错了转弯,我会很感激。
如果您不希望错误出现标签标签里面,把你的errorPlacement功能:
element.next().append(error.text());
工作作为魅力:)非常感谢! – 2011-04-15 06:40:31
其实我有点快。现在,所有的错误信息都会被追加并永远不会被清除。相同的验证错误实际上可能会多次相继显示。我用html替换append,然后错误消息不会追加,而是按需要替换,但是当输入合法时,验证错误不会被清除。任何想法如何清除? – 2011-04-15 06:48:45
@dioslaka - 我现在恢复使用标签并正确使用css样式。当它工作正常时,不需要尝试聪明:) – 2011-04-15 06:52:18
@mu - 它提供了以下HTML:'''',所以这是一个相当普通的文本框。 – 2011-04-15 06:10:38
它按预期工作在这里:http://jsfiddle.net/mzMER/它可以是CSS,你也可以发布一些CSS。 – dioslaska 2011-04-15 06:21:23
@dioslaska - 这可能是CSS,因为我在Chrome中的开发人员工具中验证了验证后的HTML,并且似乎在ErrorMessage范围内添加了以下标记: – 2011-04-15 06:28:20