【问题标题】:Jquery Validation messages not clearing on msdropdown change在 msdropdown 更改时未清除 Jquery 验证消息
【发布时间】:2013-12-28 18:43:21
【问题描述】:

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

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

这是我的验证规则块。

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

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

http://jsfiddle.net/LHF3G/

【问题讨论】:

标签: jquery jquery-validate msdropdown


【解决方案1】:

使用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 
});

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 这基本上是我的回答。虽然,如果您使用$(this).valid(),您将触发相关元素而不是整个表单的验证测试。见:jsfiddle.net/LHF3G/3
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多