2014-02-12 59 views
0

当用户更改选择选项输入时,我一直试图为我的表单动态更改所需规则的消息。我似乎无法让任何东西正常工作。选择更改后,消息永远不会改变。jQuery验证:使用选择选项更改所需消息

我尝试使用功能变化中的选择输入,像这样我的方法:

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

方法我试过:

  1. ​​

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

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

我也曾尝试对消息的依赖作用,但是,这并不在所有的工作:即使unfocusing的#inputx元素

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

该错误信息不会改变

编辑:我在我的onChange内部做了一个不正确的条件语句。一切都完美了!

+0

哪里是你的HTML标记?你的代码的其余部分在哪里? – Sparky

回答

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" 
       } 
      }); 
     } 
    }); 

}); 
+0

哇,工作!谢谢Sparky!试图围绕这个问题做些什么来解决我的问题有很多麻烦。 – Conner

+0

@Kronus,我很高兴它的工作,但既然你没有显示你的完整代码,我仍然不知道你错在哪里。也许你可以编辑你的OP来显示你的失败尝试,这样在阅读时可以帮助其他人。 – Sparky

相关问题