javascript - 验证成功控制

标签 javascript ajax function validation

这是我的代码。我的主要问题是,即使联系表单中只有一个字段有效,varvalidationbool 也会触发成功,并且不关心其他字段是否无效。仅当所有元素都有效时,如何才能创建更好的控制 varvalidationbool = true。

$(document).ready(function () {

    var validationBool = false;

    $('#register-form').validate({
        rules: {
            name: {
                    minlength: 3,
                    required: true
                },
                email: {
                    required: true,
                    email: true
                },
                phone: {
                    required: true,
                    minlength: 10
                },
                country: {
                    required: true
                },
                boat: {
                    required: true
                },
                lat: {
                    required: true
                },


                registration: {
                    required: true
                },

                file: {
                    required: true
                }
        },
        highlight: function (element) {
            $(element).closest('.control-group').removeClass('success').addClass('error');

            validationBool = false;
        },
        success: function (element) {
            element.text('').addClass('valid').closest('.control-group').removeClass('error').addClass('success');

            validationBool = true;
        }
    });

    $('#register-form').on('submit', function(e){
        e.preventDefault();
        if(validationBool){

            var theData = {
                 name: $('#name').val(),
                 phone: $('#phone').val(),
                 email: $('#email').val(),
                 country: $('#country').val(),
                 lat: $('#lat').val(),
                 lng: $('#lng').val(),
                 boat: $('#boat').val(),
                 registration: $('#registration').val(),
                 file: $('#file').val()
            };

            $.ajax({ // ajax call starts
                url: "functions/enroll.php",
                type: 'post',
                data: theData,
                success: function(data)
                {
                    swal("Your request has been recieved!", "We will contact you for confirmation soon", "success");
                    document.getElementById('name').value='',
                    document.getElementById('phone').value='',
                    document.getElementById('email').value='',
                    document.getElementById('country').value='',
                    document.getElementById('lat').value='',
                    document.getElementById('lng').value='',
                    document.getElementById('boat').value='',
                    document.getElementById('file').value='',
                    document.getElementById('registration').value='';

                }
            });
        }
    });
});

最佳答案

我会使用.valid()方法。

这将打印为

var myForm = $("#register-form"); myForm.validate();

然后,不要使用“validationBool”变量,而是使用

if (myForm.valid())

检查表单是否经过验证 - 这将检查所有字段。

关于javascript - 验证成功控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26231915/

相关文章:

javascript - 谁能解释一下jquery中函数的执行过程

javascript - 如何使用jquery/ajax获取值表行值

c - 在 C 中不使用 math.h 编写 Pow 函数

javascript - 自动更新 Javascript

c++ - 将整数传递给函数内的数组(不带指针)

javascript - jQuery mobile - 在不知道页面名称的情况下强制 pagebeforeshow

javascript - 如何查询h3标签内的内容

jquery - 使用 Ajax 接收复选框值

javascript - jquery 头文件冲突

Javascript 错误的警报顺序