2014-07-24 76 views
0

我想用tinyMce jQuery validation plugin,但我有一个小问题。TinyMCE与jQuery验证插件

默认情况下,验证插件具有以下行为:最初,每个字段被标记为有效,并且验证是懒惰的,即直到用户输入值并离开字段才显示错误。一旦某个字段被标记为无效,就会进行热切的验证,这意味着每次击键都会进行验证。

我很难模拟TinyMCE字段的这种行为。如果我使用onChange方法,验证始终在焦点上完成。如果我使用onKeyDown方法,那么即使用户第一次更改字段,每次击键都会进行验证。

有没有什么办法可以使用onChange和onKeyDown的组合来模仿jQuery验证插件的默认行为?这里是我目前拥有的代码:

function(ed) { 
    ed.onChange.add(function(ed, e) { 
     tinyMCE.triggerSave(); 
     jQuery('#'+ed.id).valid(); 
    }); 
} 

万一我没了感觉,你可以阅读验证插件的行为here

在此先感谢!

回答

0

我认为你必须有一个有效的状态变量

像这样的事情

function(ed) { 
    var validState = true; 

    ed.onKeyDown.add(function(ed, e) { 
     if (validState) { 
      return 
     } 
     else { 
      // check if new content is valid 
      validState = jQuery('#'+ed.id).valid(); 
     } 
    } 

    ed.onChange.add(function(ed, e) { 
     validState = jQuery('#'+ed.id).valid(); 

     if (validState){ 
      tinyMCE.triggerSave(); 
     } 

    }); 
} 

注意这只是一些示例代码。我还没有验证,这将工作

+0

谢谢。我不知道.valid()方法返回一个值。 –

+0

@HasanAkhtar这是[ref](http://jqueryvalidation.org/valid)。还说在使用这种方法检查之前需要在窗体上调用'validate()'方法。 – jasonscript