0

ここの専門家の 1 人が、私が取り組んできた jQuery ダイアログ スクリプトを使用して、正しい方向に向けてくれることを願っています。

私の問題: $.ajax() で保存するときに、ダイアログ ウィンドウで検証を行うことができません。私のスクリプトは、AJAX 経由で保存せずにフォームを送信するだけで問題なく動作します。

例えば。$( this ).find('form#mws-validate-event').submit();

誰かが私が下に残したコードに目を通し、検証部分を手伝う時間があれば、本当に感謝しています. 私はstackoverflowで高低を検索しましたが、まだ解決策を見つけていません。

ありがとう。

        $("#mws-addform-dialog").dialog({
                autoOpen: false, 
                title: "My Form / Add New", 
                modal: true, 
                width: "480",
            //working validation (NO AJAX)
            //buttons: [{
            //      text: "Submit", 
            //      click: function() {
            //          $( this ).find('form#mws-validate-event').submit();
            //      }}] 
            buttons: {
            "Submit": function() {

            },
            'Save': function() {

                $.ajax({
                    type : 'POST',
                    url : 'ajax.php?action=addnew',
                    data : $('#mws-validate-event').serialize(),
                    beforeSubmit : function (){
                        // Validate data before submit?? anyone??
                        //$( this ).find('form#mws-validate-event').submit();
                    },
                    success : function(data) {
                        // Show OK message
                        $('#mws-validate-event').find('.mws-form-message').html(data);
                        alert('ok');
                    },
                    error: function(error){
                        // Show error message
                        alert('error');
                    }
                });

            },
            'Cancel': function() {

                $(this).dialog("close");

            }
          } 
        });

        $("#mws-addform-dialog-btn").bind("click", function(event) {
            $("#mws-addform-dialog").dialog("option", {modal: true}).dialog("open");
            event.preventDefault();
        });
        //- modal form

        // validate form        
        $("#mws-validate-event").validate({
        //ignore: ".ignore",
            rules: {
                spinner: {
                    required: true, 
                    max: 5
                }

            }, 
            invalidHandler: function(form, validator) {
                var errors = validator.numberOfInvalids();
                if (errors) {
                    var message = errors == 1
                    ? 'You missed 1 field. It has been highlighted'
                    : 'You missed ' + errors + ' fields. They have been highlighted';
                    $("#mws-validate-error").html(message).show();
                } else {
                    $("#mws-validate-error").hide();
                    }
            }
        });
        //- validate form 
4

1 に答える 1

0

jqueryバリデーターで検証してみましたか?それはあなたのためにほとんどの検証作業を行い、使いやすいです。

http://bassistance.de/jquery-plugins/jquery-plugin-validation/
于 2012-06-05T12:24:51.503 に答える