开发者

jQuery If myform.valid() is true then fire another jQuery function?

I have a jQuery function that i would like to execute only if the form validation is true

I have the validation and other jQuery working fine.

the problem is now both validation and other function are executing same time.

I would like to run the other function only if the form validation is true. here is my script

<script>
            $(document).ready(function () {
                $.validator.addClassRules({
                    fileName: {
                        required: true
                    }
                });
                $("#myform").validate();
                if ($("#myform").valid()) {
                    $(function () {
                        $('#myform').submit(function () {
                            var cboxes = ($('input:checkbox:checked').filter(":checked").length);
                            var nboxes = ($(":checkbox:not(:checked)").length);
                            if ((cboxes > 0) && (nboxes > 0)) {
                                confirm('You have Checked only few l开发者_运维百科ocations among the List. \n Are you sure, you do not want to Prescribe from the other locations? ');
                            } else if (cboxes == 0) {
                                alert('Please select atleast One Address \n Where you would prefer to prescribe from.');
                                return false;
                            }
                            else {
                                return true;
                            }
                        });
                    });
                }
            });
</script>

please advise how can i get this done?


If you're using the jQuery validate plugin then the valid() method returns a boolean to indicate whether or not the form validated successfully, so you could just do:

if ($("#myform").valid()) {
    CallSomeOtherFunction();
}


If you're using standard plugin, such code should be supported:

$(document).ready(function() {
    $("#myForm").validate({ 
        submitHandler: function(form) {
            SomeFuncHere();
        }
    });
})

The code in submitHandler should be called after successful validation.

Edit: based on your code, try this instead:

$("#myform").validate({ 
    submitHandler: function(form) {
        var cboxes = ($('input:checkbox:checked').filter(":checked").length);
        var nboxes = ($(":checkbox:not(:checked)").length);
        var flag = false;
        if ((cboxes > 0) && (nboxes > 0)) {
            flag = confirm('You have Checked only few locations among the List. \n Are you sure, you do not want to Prescribe from the other locations? ');
        } else if (cboxes == 0) {
            alert('Please select atleast One Address \n Where you would prefer to prescribe from.');
        }
        else {
            flag = true;
        }
        return flag;
    }
});


You have to use .validate().form()

if (!$("#myform").validate().form()) {
    return false; //doesn't validate
}else
{
    //form is validated do your work
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜