jQuery 验证插件和 Bootstrap 4

标签 jquery bootstrap-4 jquery-validate

我正在使用jQuery validation plugin用于我的 js 表单验证。我也在使用 Bootstrap 4。我发现我需要修改 errorPlacementhighlightunhighlight 来使其验证错误以 BS4 风格正确显示。

$('#login-form').validate({
    rules: {
        login_username: {
            required: true
        },
        login_password: {
            required: true
        }
    },
    errorElement: 'span',
    errorPlacement: function (error, element) {
        error.addClass('invalid-feedback');
        element.closest('.form-group').append(error);
    },
    highlight: function (element, errorClass, validClass) {
        $(element).addClass('is-invalid');
    },
    unhighlight: function (element, errorClass, validClass) {
        $(element).removeClass('is-invalid');
    },
    submitHandler: function (form) {
        neou_cms.remove_error_messages();
        var username = form.elements['login_username'].value;
        var password = CryptoJS.SHA512(form.elements['login_password'].value).toString();
        login.login_user(username, password);
    }
});

因此,对于每个函数,我发现自己都在重复这些属性。有没有一种方法可以“扩展”验证库,这样我就不必每次都重复 errorPlacementhighlightunhighlight 代码我什么时候使用验证?

最佳答案

解决方案:

https://jqueryvalidation.org/jQuery.validator.setDefaults/

jQuery.validator.setDefaults({
    errorElement: 'span',
    errorPlacement: function (error, element) {
        error.addClass('invalid-feedback');
        element.closest('.form-group').append(error);
    },
    highlight: function (element, errorClass, validClass) {
        $(element).addClass('is-invalid');
    },
    unhighlight: function (element, errorClass, validClass) {
        $(element).removeClass('is-invalid');
    }
});

关于jQuery 验证插件和 Bootstrap 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52159649/

相关文章:

django - 如何使用 bootstrap CSS 设计 django 表单样式?

jquery - form.valid() 不应显示验证文本?

javascript - <a> 标签的 Title 属性是否有效以保存 html 标签,如 <br> 换行

javascript - 在所有元素 jquery 数据表之上显示弹出窗口

javascript - Bootstrap 4 : Uncaught ReferenceError: Popper is not defined

validation - 如果验证失败则显示 div

jquery验证: focusCleanup: true and focusInvalid: false don't work as expected

javascript - 如何从动态生成的 iframe 中逃脱

jquery - 使froala编辑器的父div高度可缩放

vue.js - Vue Bootstrap 4中的三列复选框