2

我正在使用带有 jquery valodation 的 Chosen。
你可以看到这个例子: http: //jsfiddle.net/hfdBF/9/
如果你点击提交,你会看到验证适用于组合和输入。

如果您在输入框中输入一个字母,您将收到一个警报,表明该字母未突出显示,就像它假设的那样。
但是,如果您在选择框中选择一个值,它不会被警告为未突出显示。

你知道如何让它发挥作用吗?

$(function() {

var $form = $("#form1");

$(".chzn-select").chosen({no_results_text: "No results matched"});
$form.validate({
    errorLabelContainer: $("#form1 div.error"),
    wrapper: 'div',
});

var settings = $.data($form[0], 'validator').settings;
settings.ignore += ':not(.chzn-done)';
settings.unhighlight= function(el){
   alert(el.name + " hit unhighlight")        
}

});​​​​</p>

谢谢

4

2 回答 2

4

您无需手动进行验证。您可以将函数绑定到change将检查特定选择是否有效的事件处理程序。如果选择有效,这也将清除错误。

$('.chzn-select').change(function () {
    $(this).valid();
});
于 2014-02-27T22:13:06.163 回答
1

您需要手动重置 jQuery 验证:

$(".chzn-select").chosen().change(function () {
    var value = $('#UserCompanyIds').val(); // the select element
    if (value != "") {
        $('.field-validation-error').each(function () {
            if ($(this).attr('data-valmsg-for') == 'UserCompanyIds') {
                $(this).html("");
                $(this).removeClass("field-validation-error").addClass("field-validation-valid");
            }
        });
    }
});

我希望这有帮助!

于 2012-12-06T18:14:36.810 回答