javascript - 表单验证在 Metronic 中无法正常工作

标签 javascript jquery validation metronic

我正在为我的应用程序使用 metronic 框架。即使不输入任何字符,这种 metronic 形式也允许空格与(勾号)标记一起有效。

直到用户输入值字段才应无效。

这里是示例链接,它是如何工作的 http://keenthemes.com/preview/metronic/theme/admin_4/form_validation.html

请转到“使用图标进行验证”表单,并在 nae 字段中输入 3 个或更多空格,然后您可以看到有效的勾号图标,但实际上无效。

您能否建议如何解决此问题。

最佳答案

您可以在文件 \assets\pages\scripts\form-validation.js 中找到此验证。

首先,添加一个附加方法 noSpace 来验证空格。然后您可以修改处理 #form_sample_2 验证的方法,即 handleValidation2。您只需在namerules中输入noSpace: true即可

完整代码如下:

// validation using icons

// Additional method to validate whitespaces
jQuery.validator.addMethod("noSpace", function(value, element) { 
  return value == '' || value.trim().length != 0; 
}, "No space please and don't leave it empty");

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

    var form2 = $('#form_sample_2');
    var error2 = $('.alert-danger', form2);
    var success2 = $('.alert-success', form2);

    form2.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
        rules: {
            name: {
                minlength: 2,
                required: true,
                noSpace: true
            },
            email: {
                required: true,
                email: true
            },
            email: {
                required: true,
                email: true
            },
            url: {
                required: true,
                url: true
            },
            number: {
                required: true,
                number: true
            },
            digits: {
                required: true,
                digits: true
            },
            creditcard: {
                required: true,
                creditcard: true
            },
        },

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

        errorPlacement: function (error, element) { // render error placement for each input type
            var icon = $(element).parent('.input-icon').children('i');
            icon.removeClass('fa-check').addClass("fa-warning");  
            icon.attr("data-original-title", error.text()).tooltip({'container': 'body'});
        },

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

        unhighlight: function (element) { // revert the change done by hightlight

        },

        success: function (label, element) {
            var icon = $(element).parent('.input-icon').children('i');
            $(element).closest('.form-group').removeClass('has-error').addClass('has-success'); // set success class to the control group
            icon.removeClass("fa-warning").addClass("fa-check");
        },

        submitHandler: function (form) {
            success2.show();
            error2.hide();
            form[0].submit(); // submit the form
        }
    });
}

完成此操作后,缩小 form-validation.js 文件并替换现有的 form-validation.min.js 文件。

关于javascript - 表单验证在 Metronic 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38567705/

相关文章:

javascript - 我应该如何使用 javascript 在 Yahtzee 中实现三轮系统?

javascript - 每 0.5 秒播放一次阵列中的声音

php - 如何在 codeigniter 验证中允许空格、逗号、点和字母

javascript - AJAX 函数填充表单中的字段?

javascript - 使用混合字符对 JavaScript 数组进行排序

javascript - 可以居中图像但不能在 IE7 中居中 div

Laravel 4 中的验证

javascript - 多个对象具有相同的键

javascript - 使用 TamperMonkey 单击 YouTube 上的 "Show more..."按钮的用户脚本

javascript - 如何压缩 Yup "when"验证