0

我想创建我的第一个 jQuery 插件,它应该提供输入限制的方法。这是代码。但我不知道如何为 keydown 事件传递参数“事件”。

(function ($) {
var methods = {
    IntegerOnly: function (event) {
        // Allow: backspace, delete, tab, escape, and enter
        if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 ||
        // Allow: Ctrl+A
        (event.keyCode == 65 && event.ctrlKey === true) ||
        // Allow: home, end, left, right
        (event.keyCode >= 35 && event.keyCode <= 39)) {
            // let it happen, don't do anything
            return;
        }
        else {
            // Ensure that it is a number and stop the keypress
            if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105)) {
                event.preventDefault();
            }
        }
    }
};

$.fn.inputRestriction = function (method) {
    if (methods[method]) {
        return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
    } else if (typeof method === 'object' || !method) {
        return methods.init.apply(this, arguments);
    } else {
        $.error('Method ' + method + ' does not exist on jQuery.inputRestriction');
    }   
};
})(jQuery);

它应该被称为

$('#txtInteger').inputRestriction('IntegerOnly');
4

1 回答 1

0

您编写插件的方式,必须以这种方式使用:

$("txtInteger").keydown(function(event) {
    $(this).inputRestriction('IntegerOnly', event);
});
于 2013-04-11T01:01:09.957 回答