Javascript 如何在IE8中解除jquery插件的绑定

Javascript 如何在IE8中解除jquery插件的绑定,javascript,jquery,internet-explorer-8,Javascript,Jquery,Internet Explorer 8,我的代码中有一个jquery插件,它将强制输入框只接受数字输入,但在某些时候我必须禁用它,并使其也接受字母表。我不能使用unbind(),因为它还将解除其他功能的绑定。任何帮助都将不胜感激,谢谢 这是我的JSFIDLE,下面是我的代码 <input type="text"> <button>Button</button> $.fn.ForceNumericOnly = function () { return this.each(function (

我的代码中有一个jquery插件,它将强制输入框只接受数字输入,但在某些时候我必须禁用它,并使其也接受字母表。我不能使用unbind(),因为它还将解除其他功能的绑定。任何帮助都将不胜感激,谢谢

这是我的JSFIDLE,下面是我的代码

<input type="text">
<button>Button</button>

$.fn.ForceNumericOnly = function () {
    return this.each(function () {
        $(this).keydown(function (e) {
            var key = e.charCode || e.keyCode || 0;

            if (e.shiftKey) {
                e.preventDefault();
            }

            // allow backspace, tab, delete, arrows, numbers and keypad numbers ONLY
            return (
                key == 8 ||
                key == 9 ||
                key == 13 ||
                key == 46 ||
                (key >= 37 && key <= 40) ||
                (key >= 48 && key <= 57) ||
                (key >= 96 && key <= 105));
        });
    });
};

$("input").ForceNumericOnly();

$("button").click(function() {
    $('input').ForceNumericOnly.destroy();
});

按钮
$.fn.ForceNumericOnly=函数(){
返回此。每个(函数(){
$(此).keydown(函数(e){
var key=e.charCode | | e.keyCode | | 0;
如果(如换档键){
e、 预防默认值();
}
//仅允许退格、制表符、删除、箭头、数字和键盘数字
返回(
键==8||
键==9||
键==13||
键==46||

(key>=37&&key=48&&key=96&&key不使用命名事件方法
$.keydown()
您可以使用允许事件名称空间的
$.on()
方法

$(this).on('keydown.forcenumericonly', function(e) { 
    // handle event
});
这使得在不干扰其他功能的情况下轻松解除特定事件的绑定。请使用
.off()
方法执行此操作

$.fn.ForceNumericOnly.destroy = function () {
    $(this).off('.forcenumericonly');
};

您可以使用
$(this).off('keydown.forcenumerionly')
仅解除
keydown
事件的绑定,或者如示例中所示,使用
$(this).off('forcenumerionly')解除
forcenumerionly
命名空间中所有事件的绑定

为字母数字验证编写一个单独的函数-在需要时取消绑定数字和绑定字母数字?Amit.rk3我不能使用取消绑定,因为它同时取消绑定其他功能。我只想禁用该插件。