Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么即使必填字段值不正确或验证失败,也会提交此表单?_Javascript_Jquery_Forms_Validation - Fatal编程技术网

Javascript 为什么即使必填字段值不正确或验证失败,也会提交此表单?

Javascript 为什么即使必填字段值不正确或验证失败,也会提交此表单?,javascript,jquery,forms,validation,Javascript,Jquery,Forms,Validation,我正在应用Javascript验证,当表单验证失败时,原因是什么 提交。这里我使用以下代码 var FormValidation = function () { var isbnForm = function() { // for more info visit the official plugin documentation: // http://docs.jquery.com/Plugins/Validation

我正在应用Javascript验证,当表单验证失败时,原因是什么

提交。这里我使用以下代码

var FormValidation = function () {
    var isbnForm = function() {
            // for more info visit the official plugin documentation: 
                // http://docs.jquery.com/Plugins/Validation


                var form1 = $('#isbnForm');
                var error1 = $('.alert-danger', form1);
                var success1 = $('.alert-success', form1);

                form1.validate({
                    errorElement: 'span', //default input error message container
                    errorClass: 'help-block help-block-error', // default input error message class
                    focusInvalid: false, // do not focus the last invalid input
                    ignore: "",  // validate all fields including form hidden input
                    messages: {
                        select_multi: {
                            maxlength: jQuery.validator.format("Max {0} items allowed for selection"),
                            minlength: jQuery.validator.format("At least {0} items must be selected")
                        }
                    },
                    rules: {
                        isbn: {
                            required: function(){

                                    var isbn = $("#isbn").val();
                                    if(isbn){

                                        var resultData10 = isValidIsbn10 (isbn);
                                        if(resultData10 != 1){

                                             $(".errorData").show();
                                             $(".errorData").html("<p style='color:#A94442;'>ISBN number is not valid</p>");
                                             return true;
                                         }
                                         else{
                                            $(".errorData").hide();
                                            return false;
                                        }
                                     }
                                     else{
                                           $(".errorData").hide();
                                            return true;
                                     }

                                    function isValidIsbn10 (isbn) {

                                            isbn = isbn.replace(/[^\dX]/gi, '');

                                            if(isbn.length != 10){
                                                return false;
                                            }
                                            var chars = isbn.split('');
                                            if(chars[9].toUpperCase() == 'X'){
                                                chars[9] = 10;
                                            }
                                            var sum = 0;
                                            for (var i = 0; i < chars.length; i++) {

                                                sum += ((10-i) * parseInt(chars[i]));
                                            };
                                            return (0 === (sum % 11)) ? 1 : false;
                                        }
                            }

                        },
                         name: {

                            required: true
                        },


                    },

                    invalidHandler: function (event, validator) { //display error alert on form submit              
                        success1.hide();
                        error1.show();
                        Metronic.scrollTo(error1, -200);
                    },

                    highlight: function (element) { // hightlight error inputs
                        $(element)
                            .closest('.form-group').addClass('has-error'); // set error class to the control group
                    },

                    unhighlight: function (element) { // revert the change done by hightlight
                        $(element)
                            .closest('.form-group').removeClass('has-error'); // set error class to the control group
                    },

                    success: function (label) {
                        label
                            .closest('.form-group').removeClass('has-error'); // set success class to the control group
                    },

                    submitHandler: function (event,form) {
                        success1.show();
                        error1.hide();
                        form.submit();
                    }
                });


        }

    return {
            //main function to initiate the module
            init: function () {

                isbnForm();

            }

        };

    }();
当我在ISBN输入类型中键入错误的值时,将显示错误消息,但在提交该表单之后。我想知道值是否错误。不应提交表单。

您的ISBN:required规则仅确定是否需要ISBN。如果您输入的isbn无效,isValidIsbn10将返回false,您所需的规则将返回false。这意味着isbn不是必需的,仅此而已。这并不会阻止表单的提交


您需要的是一个规则,该规则仅在isbn有效时进行验证。您需要一个标签来完成这项工作。

无需标记PHP-代码中没有PHP。