jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – 文本区域中的选项卡,无需更改焦点,jQuery大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

给定一个textarea,有没有办法使用jQuery来启用人们使用“tab”键的能力,实际上..插入一个标签,而不是将焦点跳到页面上的下一个表单元素?

我已经关注了Capturing TAB key in text box,然这确实有效,但我希望尝试将其包装成一个jQuery插件,以使特定的文本框可以列表.问题是,我并不完全理解如何将这些“监听器”的概念应用于与jQuery相对应的对象.

有没有人在我可以开始的地方有一些线索?

解决方法:

我刚刚编写了一个jQuery插件,可以在所有主流浏览器中使用.它使用keydownkeypress将事件侦听器绑定到一组元素.事件侦听器会阻止Tab键的认行为,而keydown侦听器也会在插入符/选择中手动插入制表符.

这是在行动:http://www.jsfiddle.net/8segz/

这是一个使用示例:

$(function() {
    $("textarea").allowTabChar();
});

这是插件代码

(function($) {
    function pasteIntoInput(el, text) {
        el.focus();
        if (typeof el.SELEctionStart == "number") {
            var val = el.value;
            var selStart = el.SELEctionStart;
            el.value = val.slice(0, selStart) + text + val.slice(el.SELEctionEnd);
            el.SELEctionEnd = el.SELEctionStart = selStart + text.length;
        } else if (typeof document.SELEction != "undefined") {
            var textRange = document.SELEction.createRange();
            textRange.text = text;
            textRange.collapse(false);
            textRange.SELEct();
        }
    }

    function allowTabChar(el) {
        $(el).keydown(function(E) {
            if (e.which == 9) {
                pasteIntoInput(this, "\t");
                return false;
            }
        });

        // For Opera, which only allows suppression of keypress events, not keydown
        $(el).keypress(function(E) {
            if (e.which == 9) {
                return false;
            }
        });
    }

    $.fn.allowTabChar = function() {
        if (this.jquery) {
            this.each(function() {
                if (this.nodeType == 1) {
                    var nodename = this.nodename.toLowerCase();
                    if (nodename == "textarea" || (nodename == "input" && this.type == "text")) {
                        allowTabChar(this);
                    }
                }
            })
        }
        return this;
    }
})(jQuery);

大佬总结

以上是大佬教程为你收集整理的javascript – 文本区域中的选项卡,无需更改焦点,jQuery全部内容,希望文章能够帮你解决javascript – 文本区域中的选项卡,无需更改焦点,jQuery所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: