jquery – ASP.NET MVC 3不引人注目的验证 – 在验证事件之前?

使用ASP.NET MVC3的不显眼的验证功能如何在验证运行之前运行一些 JavaScript?出于显而易见的原因,Jquery的提交处理程序在验证后运行.我可以点击提交按钮,但这看起来并不优雅.有什么建议?

编辑

看来我的上述陈述是不正确的.如下所述,提交处理程序确实在验证之前运行.不幸的是,这并没有解决我的问题.

修改过的问题:

我需要在表单提交之后但在jQuery验证之前操作表单值.如果我在使用jQuery的提交处理程序提交后更改值,则jQuery验证原始值而不是新值.

解决方法

验证后,提交处理程序不会运行.它之前运行.试试吧:

$('form').submit(function () {
    alert('validation hasn\'t run yet at this point => see there is no red color over your form input fields yet');

    if ($(this).valid()) {
        alert('the form is valid');
    } else {
        alert('the form is not valid');
    }
});

更新:

修改后的问题之后,我仍然无法重现这个问题.这是我的模特:

public class MyModel
{
    [required]
    public string Name { get; set; }
}

这是我的看法:

@model MyModel

<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>           

@using (Html.BeginForm(null,null,FormMethod.Post,new { }))
{
    @Html.EditorFor(x => x.Name)
    @Html.ValidationMessageFor(x => x.Name)
    <input type="submit" value="OK" />
}

<script type="text/javascript">
    $('form').submit(function () {
        $('#Name').val('some value');
    });
</script>

现在,如果我将“名称”字段留空并提交表单,则会正确分配新值,并且表单已成功提交给服务器而没有任何错误.如果我删除$(‘#Name’).val(‘some value’);分配新值并尝试使用空字段客户端验证触发器提交表单的行,并且不提交表单.

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: &lt;span id=&quot...
jQuery 添加水印 &lt;script src=&quot;../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...