jQuery使用.live和jquery-keyfilter插件

时间:2010-07-06 03:39:35

标签: javascript jquery regex jquery-plugins keyfilter

我使用jquery-keyfilter插件来屏蔽文本框输入。 但是文本框会动态添加到页面中,我无法弄清楚如何将密钥过滤器应用于它们。

我试过了

$('#myelement').live('keyfilter', myFunction );

另外

$('#myelement').live('keyfilter', /regex/);

Kai:评论有帮助,但似乎我的问题仍未解决

我想要一个像这样的关键过滤器

(/^\$?(\d{1,3},?(\d{3},?)*\d{3}(.\d{0,3})?|\d{1,3}(.\d{2})?)$/);

只会接受货币/货币价值,但似乎jquery-keyfilter不适用于此正则表达式。这是我做错了什么,还是我应该看看使用另一个插件还是自己编写代码?

2 个答案:

答案 0 :(得分:3)

“keyfilter”不是一个事件,你不能使用live() 根据插件的API,它应该是

$('#myelement').keyfilter(function(c) { return c != 'a'; }); 

$('#myelement').keyfilter(/[\dA-F]/); 

答案 1 :(得分:0)

以下解决方案适用于非第一个字符

  
$("#myelement").live("keypress", function(){  
  $(this).keyfilter((/^\$?(\d{1,3},?(\d{3},?)*\d{3}(.\d{0,3})?|\d{1,3}(.\d{2})?)$/);  
});

以下解决方案适用于已点击的输入字段

  
$("#myelement").live("click", function(){    
  $(this).keyfilter((/^\$?(\d{1,3},?(\d{3},?)*\d{3}(.\d{0,3})?|\d{1,3}(.\d{2})?)$/);  
});