ExtJs之重写TextArea捕获TextArea中光标

本文详细介绍了如何在ExtJs中自定义TextArea控件,以实现获取光标位置的功能。通过重写相关方法,使得在实际应用中能够更灵活地操作文本输入区域。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工作使用ExtJs,一直也仅仅是使用ExtJs中的相关控件而已,也没有重写过相关的控件,最近业务需要重新重写了TextArea控件,主要是为了获取TextArea中光标的位置

me.downTextArea = Ext.create('Ext.form.field.TextArea', {

                    name : 'rightEditText'

                });

        Ext.override(me.downTextArea, {

                    getCaretPosition : function() {

                        var el = this.inputEl.dom;

                        if (typeof(el.selectionStart) === "number") {

                            return el.selectionStart;

                        } elseif (document.selection && el.createTextRange) {

                            var range = document.selection.createRange();

                            range.collapse(true);

                            range.moveStart("character", -el.value.length);

                            return range.text.length;

                        } else {

                            throw'getCaretPosition() not supported';

                        }

                    },

                    setCaretPosition : function(pos) {

                        var ctrl = this.inputEl.dom;

                        if (ctrl.setSelectionRange) {

                            ctrl.focus();

                            ctrl.setSelectionRange(pos, pos);

                        } elseif (ctrl.createTextRange) {

                            var range = ctrl.createTextRange();

                            range.collapse(true);

                            range.moveEnd('character', pos);

                            range.moveStart('character', pos);

                            range.select();

                        }

                    }

                });

重写的代码是从网上参照其他博客写的,这里只是为了记录。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值