msdropdown上的Jquery验证消息未清除更改

时间:2013-12-28 18:43:21

标签: jquery jquery-validate msdropdown

我有一个带有两个选择框的表单。第一个使用msdropdown进行样式设置。我正在使用jquery验证(必需)验证表单。当我提交表单时,将验证两个选择框并显示错误消息。太好了。

但我的问题是,当我刚刚更改了选择框选项时,验证消息正在清除正常选择框。但它没有清除msdropdown选择框。我需要再次单击“提交”按钮以清除消息。当我更改选择框选项时,我该怎么做才能验证?

这是我的验证规则块。

$(document).ready(function(e) {     
    $("body #webmenu").msDropDown();
    $("#frmTest").validate({
        rules: {
            normal: {
                required: true
            },
            webmenu: {
                required: true
            }
        }
    });
});    

我创造了一个场景小提琴。请看一下。

http://jsfiddle.net/LHF3G/

2 个答案:

答案 0 :(得分:2)

使用the plugin's .valid() methodmouseup事件上触发对元素的验证测试。我使用浏览器的DOM检查器来查找目标... <li>与类_msddli_

$('._msddli_').on('mouseup', function() { // target the custom line item on mouseup
    $('#webmenu').valid(); // validation test triggered on target element
});

工作演示:http://jsfiddle.net/LHF3G/1/


修改

另一个与上述相同的版本:

$('#webmenu').on('change', function() {  // target the original select on change
    $(this).valid();  // validation test triggered on target element 
});

DEMO:http://jsfiddle.net/LHF3G/3/

您可以调整jQuery选择器和JavaScript事件以适应任何可能的情况。但是,最重要的方面是.valid()方法是触发验证测试的机制,而后者又会根据需要切换错误消息。

答案 1 :(得分:1)

感谢您的支持。我最后通过添加以下代码解决了这个问题。

 $('#webmenu').on('change', function(){ 
     $('#frmTest').valid(); 
 })