0

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

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

这是我的验证规则块。

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

我已经创建了一个场景。请看一看。

http://jsfiddle.net/LHF3G/

4

2 回答 2

2

使用插件的.valid()方法在事件发生时触发对元素的验证测试mouseup。我使用浏览器的 DOM 检查器来查找目标... <li>with class _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 
});

演示:http: //jsfiddle.net/LHF3G/3/

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

于 2013-12-28T19:56:00.750 回答
1

谢谢你的支持。我终于通过添加以下代码解决了这个问题。

 $('#webmenu').on('change', function(){ 
     $('#frmTest').valid(); 
 })
于 2013-12-29T06:06:15.933 回答