我是 jQuery 新手,在自定义验证元素的样式(ASP.NET MVC3 项目)方面有点挣扎。我知道我可以更改 CSSfield-validation-error
等input-validation-error
,但我想要实现如下(使用 jQuery 1.5.1 和 jQuery UI 1.8.11):
对于标签/输入元素组合,我想在验证失败时更改标签颜色(现在只有输入元素的背景颜色变为浅红色)。此外,我想在输入元素的右侧显示一个错误图标(这有效),并将错误消息作为工具提示(这不起作用)。
此外,当将鼠标悬停在表单的提交按钮上时,我希望验证摘要显示为自定义样式的工具提示(不知道如何完成此操作)。
通常,我的表单验证确实有效,但我想如上所述更改元素的样式。我不明白为什么该validate
功能似乎没有触发(在这里我想我可以开始errorPlacement
等等)。我的代码如下:
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
$(document).ready( function()
{
$("form").validate({
debug: true,
errorPlacement: function(error, element)
{
error.insertBefore(element);
},
submitHandler: function()
{
alert("submit");
}
});
});
[...]
@using(Html.BeginForm())
{
[...]
<td>@Html.LabelFor(model => model.SomeField)</td>
<td>
@Html.EditorFor(model => model.SomeField)
@Html.ValidationMessagesFor(model => model.ValidFrom)
</td>
[...]
@Html.ValidationSummary(false);
<input id="btnSubmit" name="submit" type="submit" value="Send" />
}
尽管为 submitHandler 设置debug: true
和定义了alert
,但我在 Firefox 的 Web 开发人员控制台上看不到任何(与验证相关的)输出。当表单有效时单击提交按钮时,我也看不到该alert
消息,它只是被发布到服务器。我还尝试显式设置表单 ID 并在 jQuery 中访问它:
$("#myForm")...
[...]
@using(Html.BeginForm("Action","Controler", FormMethod.Post, new { id = "myForm" }))
{
[...]
不幸的是,这并没有改变任何东西。如何如上所述设置我的验证元素的样式?为什么validate
函数没有触发?