这个问题可能在其他框架中被问到,不确定ExtJs上是否有,我是新来的。我想知道是否有一个简单的例子,一个TextArea和一个按钮。当按钮被按下时,一个固定的字符串“???”被插入到TextArea的光标处。先谢了。
eimct9ow1#
实际上,您可以直接从DOM中执行此操作,使用textareas的selectionStart属性来查找插入符号的位置。所以你可以做一些
textArea.value = textArea.value.substring(0, selectionStart)+'???'+textArea.value.substring(selectionStart);
下面是一个jsfiddle示例,它使用Ext.get和Ext.getDom的组合来选择和修改元素。
bgibtngc2#
在extjs 7.5.1(可能更早)中,可以使用textArea对象的getCaretPos()方法获取光标位置:
var textToInsert = 'test'; var txtArea = Ext.ComponentQuery.query('#yourTextAreaItemId')[0]; var currentContent = txtArea.getValue(); var caretPos = txtArea.getCaretPos(); txtArea.setValue(currentContent.substring(0,caretPos) + textToInsert + currentContent.substring(caretPos));
请注意,框架文档中似乎没有记录此方法,因此请注意可能的更新。
2条答案
按热度按时间eimct9ow1#
实际上,您可以直接从DOM中执行此操作,使用textareas的selectionStart属性来查找插入符号的位置。
所以你可以做一些
下面是一个jsfiddle示例,它使用Ext.get和Ext.getDom的组合来选择和修改元素。
bgibtngc2#
在extjs 7.5.1(可能更早)中,可以使用textArea对象的getCaretPos()方法获取光标位置:
请注意,框架文档中似乎没有记录此方法,因此请注意可能的更新。