2016-11-14 60 views
0

我想验证一个使用jQuery验证的textarea(CK编辑器),并且它不在按钮单击事件中工作。而如果单独调用它正在工作。jQuery验证 - 在CK编辑器上不能在按钮单击事件中工作

提琴手:http://jsfiddle.net/BmZ93/453/

JS:

$(document).ready(function() { 
    var FormAllClass = '.form-all'; 

     var IsValid = function() { 
      $(FormAllClass).validate(); 
      $('#desc').rules("add", { 
       required: true, 
       messages: { 
        required: "Description is required." 
       } 
      }); 

      $(FormAllClass).valid(); 
    }; 

    //IsValid() //Working 


    $('#job-submit').on('click', function(){ 

      if (IsValid())//not working 
     { 

     } 
    }) 
}); 

在上面的代码中,我已标记在那里工作,其中没有。

有关如何解决此问题的任何建议将不胜感激。

+0

提示:'.validate()'方法只用于初始化,所以它在DOM准备就绪,不'click'调用一次。 – Sparky

回答

0

实际的文本区域似乎被隐藏。 jQuery验证似乎默认忽略隐藏的元素。因此,要解决该问题,请在验证方法中将ignore参数设置为空字符串。

这不会忽略隐藏元素,

$(document).ready(function() { 
    var FormAllClass = '.form-all'; 

     var IsValid = function() { 

      $(FormAllClass).validate({ 
       ignore: ''//do not ignore hidden elements 
      }); 

      $('#desc').rules("add", { 
       required: true, 
       messages: { 
        required: "Description is required." 
       } 
      }); 

      $(FormAllClass).valid(); 
    }; 


    $('#job-submit').on('click', function(){ 

     if (IsValid())//not working 
     { 

     } 
    }) 
}); 
+0

从技术上讲,按照开发人员,它应该''忽略:[]' – Sparky

+0

我使用typescript和键入指示忽略属性是一个字符串,而不是一个数组。所以,我无法设置[]。 –

+0

然后这是打字稿的一个小问题。请参阅:http://stackoverflow.com/a/8565769/594235 – Sparky