0

プロジェクトに 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>

以下は、検証中のフォームの一部のスクリーン ショットです。フォームに無効なデータが含まれていても、フォームは投稿されます。どうすればこれを解決できますか。ありがとう。

検証中のフォームの特定の部分

4

2 に答える 2

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");
        }
    }
于 2013-08-29T09:42:19.647 に答える
0
$("a").click(function(event) {
    //cancel submit click
    event.preventDefault();
    //check errors
    ...
    //Post your form
    PostForm('someurl','myform', 'Title of dialog');
});
于 2013-08-29T08:09:13.150 に答える