jQuery验证:使用select选项更改所需的消息

时间:2014-02-12 02:42:29

标签: jquery jquery-validate

当用户更改select选项输入时,我一直在尝试动态更改表单所需规则的消息。我似乎无法正常工作。选择更改后,消息永远不会改变。

我尝试使用选择输入的更改函数的方法,如下所示:

$('#selector').change(function(){
     Method X;
}

我试过的方法:

  1. $.validator.messages.required = "New Message";

  2. $('#inputx').rules("remove", "required");

    $('#inputx').rules("add", { messages: {required: "New Message"}});

  3. 我还尝试过一个依赖函数来处理消息,但这根本不起作用:

    required: {
        depends: function(element){
            if($('#selector option:selected').text() == 'Option1'){
                return "Message 1";
            } else{
                return "Message 2";
            }
            return;
        }
    }
    

    即使在未聚焦#inputx元素

    之后,错误消息也不会改变 编辑:我在onChange中做了一个不正确的条件语句。现在一切都很完美!

1 个答案:

答案 0 :(得分:1)

.rules('add')方法对我来说很好......

http://jsfiddle.net/2NJS7/

$(document).ready(function () {

    $('#myform').validate({
        rules: {
            test: {
                required: true
            },
            myselect: {
                required: true
            }
        }
    });

    $('select[name="myselect"]').on('change', function () {
        if ($(this).val() == 1) {
            $('input[name="test"]').rules('add', {
                messages: {
                    required: "this is the new message"
                }
            });
        } 
    });

});