1

jquery検証を使用した非常に複雑な投稿と、サーバーから返されたJSON応答を取得してjqGridに入れるAJAX投稿があります...しかし、私の成功は決して呼び出されないようです...

$(document).ready(function () {
    $("#formSearchByMRN").validate({
        rules: {
            MRN: { required: true, minLength: 6 }
        },
        messages: {
            MRN: 'Please Enter a Valid MRN'
        },            
        submmitHandler: function (form) {
            e.preventDefault();
            animateLoad();
            debugger;                
            var theURL = form.action;
            var type = form.methd;
            var data = $(this).serialize();
            $.ajax({
                url: theURL,
                type: type,
                data: data,
                dataType: "json",
                success: function (result) {
                    debugger;
                    var data = result;
                    if (data.split(':')[0] == "Empty record") {
                        $("#list").unblock();
                        $('#resultDiv').html('<b><p style="color: #ff00ff">' + data + '</p></b>');
                        setTimeout(function () {
                            $('#resultDiv').html("");
                        }, 10000);
                    }
                    else {
                        binddata(data);
                    }
                }
            });
            return false;
        }
    });
});

私は決してsubmmitHandlerに入らないようです。サーバー側の関数に到達できたにもかかわらず、イベントが返されますが、JSON の結果を含むファイルを保存するように UI に指示します...ダメです。
AJAX が間違った方法で投稿する前に、フォームを検証しようとしていますか? AJAX の投稿を検証する際のベスト プラクティスについて何かアドバイスはありますか?

更新... MARK R.これは私が試みたものです。私は成功関数に入ることはないようです...私の疑いは、私が本当にajaxを介して投稿しているのではなく、完全な投稿をしていることです。理由がわかりません。

$('#submitMRN').click(function () {
    $("#formSearchByMRN").validate({
        rules: {
            MRN: { required: true, minLength: 6 }
        },
        messages: {
            MRN: 'Please Enter a Valid MRN'
        }
    });
    if ($('#submitMRN').valid()) {
        $("#list").block({ message: '<img src="../../Images/ajax-loader.gif" />' });
        $.ajax({
            url: $('#submitMRN').action,
            type: $('#submitMRN').method,
            data: $('#submitMRN').serialize(),
            dataType: "json",
            success: function (result) {
                debugger;
                var data = result;
                if (data.split(':')[0] == "Empty record") {
                    $("#list").unblock();
                    $('#resultDiv').html('<b><p style="color: #ff00ff">' + data + '</p></b>');
                    setTimeout(function () {
                        $('#resultDiv').html("");
                    }, 10000);
                }
                else {
                    binddata(data);
                }
            }                    
        });
    }
});
4

1 に答える 1

1
    $('#SubmitButton').click(function (){
        //Check that the form is valid
        $('#FormName').validate(); 
        //If the Form is valid 
        if ($('#FormName').valid()) { 
            $.post(...........
        }
        else { 
            //let the user fix their probems
            return false; 
        }
    });//$('#SubmitButton').click(function (){ 
于 2012-11-29T19:20:46.173 に答える