【问题标题】:start form validation only on submit仅在提交时开始表单验证
【发布时间】:2015-05-31 08:43:21
【问题描述】:

我的表单在用户开始输入的那一刻开始验证 (with this plugin)。例如,如果我输入了密码并重新输入密码,当输入密码的第一个字符时,它会立即显示“密码不匹配”,但用户没有机会输入重新输入的密码。

如何禁用输入验证并仅在用户单击提交时显示错误?有什么选择吗?

但是,带有远程检查的用户名我确实希望它在输入失焦时显示错误

$('#frm_user_details').formValidation('validate');

$('#frm_user_details').formValidation({
            framework: 'bootstrap',
            fields: {
                register_first_name: {
                    validators: {
                        notEmpty: {
                            message: 'Please enter your first name'
                        }
                    }
                },
                register_last_name: {
                    validators: {
                        notEmpty: {
                            message: 'Please enter your last name'
                        }
                    }
                },
                username: {
                    validators: {
                        notEmpty: {
                            message: 'Please enter a username.'
                        },
                        remote: {
                            type: 'POST',
                            url: '/core/services/validator.php',
                            message: 'That username is already taken.',
                            delay: 500
                        }
                    }
                },
                register_password: {
                    validators: {
                        notEmpty: {
                            message: 'The password is required and cannot be empty'
                        },
                        identical: {
                            field: 'register_password_retyped',
                            message: 'The password and its confirm must be the same'
                        }
                    }
                },
                register_password_retyped: {
                    validators: {
                        notEmpty: {
                            message: 'The confirm password is required and cannot be empty'
                        },
                        identical: {
                            field: 'register_password',
                            message: 'The password and its confirm must be the same'
                        }
                    }
                },

            },
            onError: function(e) {
                e.preventDefault();
                $('#create_account').removeClass('button-disabled');
            },
            onSuccess: function(e) {
                e.preventDefault();
                $('#create_account').addClass('button-disabled');
                    THIS.services.submitHandler();
                }
            }
        });

【问题讨论】:

    标签: jquery formvalidation-plugin


    【解决方案1】:

    API docs describing Settings object 结构中提到: live 属性应该是 disabled 以防止验证用户输入。 - 禁用实时验证。错误信息仅在表单提交后显示

    $(formSelector).formValidation({
        live : disabled,
       //other properties
    

    【讨论】:

    • 谢谢!那行得通。我怎样才能通过遥控器只为一个输入启用直播?
    • 这与您最初表示的想要实现的目标有些不同。 live 是整个表单的全局设置。每个字段配置的一部分 - 触发属性,formvalidation.io/settings/#field-trigger 但它仅适用于 live = true;所以也许选项是为除该字段之外的每个字段启用实时和禁用验证?
    【解决方案2】:

    为了完成@Shershen 的回答,“禁用”应该与“禁用”一起使用。只是一个小细节。

    $(document).ready(function() {
        $('<your_selector>').formValidation({
            live : 'disabled'
        });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      • 2019-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多