2016-11-14 59 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