chosen和validateEngine共用

    在使用jquery validateEngine时用了chosen插件,chosen插件导致select原本的验证hidden了,而validateEngine插件不对hidden域进行validate。

// Custom ID uses prefix
usePrefix: "",
// Custom ID uses suffix
useSuffix: "",

    既然有根据ID属性来搜索,把select标签加上共有的后缀或者前缀就行了,避免每个select标签都需要写ID属性,这部分的东西由JS进行完成,这里由后缀进行完成,代码如下:

$(".chosen-select").each(function () {
   var field = $(this);
   if (!field.attr("id")) {
      field.attr("id", field.attr("name") + "_chosen");
   } else {
      field.attr("id", field.attr("id") + "_chosen");
   }
});

    初始化chosen部分

$(".chosen-select").chosen({
   allow_single_deselect : true,
   search_contains : true,
   no_results_text : '没有匹配项!'
});

    由于validateEngine默认是blur进行validate,而chosen没有blur事件,故而加上验证事件

// chosen-change 验证值
$(".chosen-select").chosen().change(function () {
   $(this).validationEngine("validate");
});

    最后在启动validateEngine时使用后缀检索ID

//初始化验证框架
$("#buildingForm").validationEngine({
    prettySelect : true,
    useSuffix: "_chosen"
});


你可能感兴趣的:(chosen和validateEngine共用)