JQuery验证重新验证

时间:2017-03-03 20:26:12

标签: javascript jquery validation

我正在使用JQuery Validation,但我需要以某种方式重新验证字段。我有一个具有远程方面的文本字段,并且工作正常。但是,它上面有一个可能会改变的选择框。我只是想在选择框的值发生变化时再次进行验证。那可能吗?

$('#input').validate(
        {
            rules: {
                dbname: {
                    required: true,
                    minlength: 1,
                    onKeyUp: false,
                    remote: {
                        type:"post",
                        url:'createdb/checkdbname',
                        data: {
                            catserver: function(){
                                return $("#catserver").val();
                            },
                            prepend: function(){
                                return $("#prepend").text();
                            }

                        }
                    }

                },
                dataname: {
                    required: true
                },
                clientsel: {
                    required: true
                }

            },

            messages: {
                dbname: {
                    remote: "Database Already Exists on Server"

                }
            },

基本上,选择框catserver和dbname有点依赖于彼此。我不确定我是否正确处理了这个问题。如果重要的话,我使用bootstrap作为带有codeigniter的表单。基本上发生的事情是在我验证罚款并且有人更改catserver的选择值之后,dbname的验证不会再次发生,除非我更改dbname字段的值。

1 个答案:

答案 0 :(得分:1)

当然,您可以将更改事件绑定到应该触发验证的元素:

$('.my-select-box').on('change', validate);

function validate() {
   $('#input').validate(
        {
            rules: {
                dbname: {
                    required: true,
                    minlength: 1,
                    onKeyUp: false,
                    remote: {
                        type:"post",
                        url:'createdb/checkdbname',
                        data: {
                            catserver: function(){
                                return $("#catserver").val();
                            },
                            prepend: function(){
                                return $("#prepend").text();
                            }

                        }
                    }

                },
                dataname: {
                    required: true
                },
                clientsel: {
                    required: true
                }

            },

            messages: {
                dbname: {
                    remote: "Database Already Exists on Server"

                }
            },
// .......
}