asp.net mvc3中的客户端验证

时间:2013-08-29 07:56:12

标签: jquery asp.net-mvc-3 validation

我正在使用asp.net mvc3和我的项目以及jquery ajax方法。我已经能够验证输入,但如果我点击发布按钮,即使表单包含无效数据,也会发布数据。我知道这可以使用提交按钮解决。但我想使用我的jquery方法。我一直在使用asp.net mvc3客户端验证。这是我从表单发布数据的代码。

//jQuery
function PostForm(Url, FormID, Title) {    

    var dataTOPost = '#' + FormID; // Id of particular form to post

    $.ajax({
        url: Url,
        type: 'POST',
        data: $(dataTOPost).serialize(),
        beforeSend: function () {
            //display some loading pics
        }
    }).done(function (result) {

        //if success do something
    });

}

我用它如下

<a onclick="PostForm('someurl','myform', 'Title of dialog');" >Submit</a>

以下是正在验证的部分表单的屏幕截图。即使表单包含无效数据,表单也会发布。我该如何解决这个问题。感谢。

Certain part of form being validated

2 个答案:

答案 0 :(得分:5)

您必须使用以下方式解析表单以进行验证:

$.validator.unobtrusive.parse($(form));

然后询问是否有效:

$(form).valid();

例如:

function PostForm(Url, FormID, Title) {    

        var dataTOPost = '#' + FormID; // Id of particular form to post

        $.validator.unobtrusive.parse($(dataTOPost));

        if ($(dataTOPost).valid()){

            $.ajax({
                url: Url,
                type: 'POST',
                data: $(dataTOPost).serialize(),
                beforeSend: function () {
                  //display some loading pics
                },
                done: function (result) {
                  //if success do something
                }});
        }else{
         console.log("invalid form");
        }
    }

答案 1 :(得分:0)

$("a").click(function(event) {
    //cancel submit click
    event.preventDefault();
    //check errors
    ...
    //Post your form
    PostForm('someurl','myform', 'Title of dialog');
});