使用MVC 4表单进行JQuery验证不起作用。

时间:2013-09-06 13:48:44

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

我正在使用MVC 4表单,我想对我的输入进行一些验证。 由于我的MVC强类型模型有点复杂,我想只使用JQuery验证方法而不使用Attributes属性。

当我运行我的页面时,我可以看到警告消息,但IE10告诉我: “对象不支持属性或方法'验证'”。

此外,Chrome还会显示提醒,但是当我点击“提交”并将我的FirstName输入留空时,系统不会显示任何内容并提交表单。 我应该在某处定义我的错误消息吗?我究竟做错了什么? 谢谢!

这是 _Layout.cshtml 中的<head>部分:

<head>
<script src="../../Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.validate.min.js" type="text/javascript"></script>
</head>

这是 EditClient.cshtml 中的<body>部分(使用上面的布局):

<body>
<script src="../../Scripts/EditClient.js" type="text/javascript"></script>
@using (Html.BeginForm("EditClient", "Reviewer", FormMethod.Post, new { id = "ClientForm" }))
{
@Html.TextBoxFor(x => x.Client.Person1.FirstName)
<input type="submit" value="Submit" class="form-submit" />
}
</body>

这是表单验证的 EditClient.js

$("document").ready(function () {

    alert('Test Alert');    //Showing OK
    $("#ClientForm").validate(); //IE10 doesn't recognize the method
    $("#Client_Person1_FirstName").rules("add", { required: true, maxlength: 20, messages: { required: "Title required", maxlength: "Must be under 20 characters"} });

});

1 个答案:

答案 0 :(得分:0)

尝试定义验证规则:

$("document").ready(function () {
    $("#ClientForm").validate({
        rules: {
            'Client.Person1.FirstName':
           {
                required: true,
                maxlength: 20
            }
        },
        messages:
        {
            'Client.Person1.FirstName':
           {
                required: 'Title required',
                maxlength: 'Must be under 20 characters'
            }
        }
    });
});