2010-05-19 81 views
0

我用jquery numeric plugin只允许号码在某些领域中键入。禁用动态jQuery插件

$("input.numeric").numeric(); 

我想在某些情况下动态禁用此功能,以允许用户键入其他字符(即字母)。 我tryed使用解除绑定()或undelegate()没有成功的功能。

有谁知道解决的办法? 感谢

+0

你怎么使用'.unbind()'?该数字插件似乎只是绑定一个'keypress'处理程序的输入,所以'$(“input.numeric”)取消绑定();'应该删除(和所有其他)处理程序。 – user113716 2010-05-19 13:06:43

+0

感谢您的帮助。 Finaly,我发现这个解决方案: $( '#my_elt')解除绑定( '按键')解除绑定( '模糊'); 我解除了该插件使用的所有事件。 – Gilles 2010-05-19 13:41:10

回答

4

此插件包含功能removeNumeric();

而且这几乎是正确的。在removeNumeric功能

$.fn.removeNumeric = function() 
{ 
    return this.data("numeric.decimal", null).data("numeric.negative", 
    null).data("numeric.callback", null).unbind("keypress", 
    $.fn.numeric.keypress).*unbind("keyup", 
    $.fn.numeric.keyup)*.unbind("blur", $.fn.numeric.blur); 
} 

插入unbind("keyup", $.fn.numeric.keyup),并在这之后,你可以尝试我$("input.numeric").removeNumeric(); 正常工作: 首先,你应该在jquer.numeric插件添加少许修正。

+0

我想上去投票至少两次...... – Abs 2014-01-07 08:15:23