如何从输入字段中获取插入位置?
我通过谷歌发现了一些零碎的东西,但没有任何防弹措施.
基本上像jQuery插件这样的东西是理想的,所以我可以简单地做
$("#myinput").caretPosition()
Run Code Online (Sandbox Code Playgroud) 找出在真实浏览器中选择的内容非常简单:
var range = {
start: textbox.selectionStart,
end: textbox.selectionEnd
}
Run Code Online (Sandbox Code Playgroud)
但IE像往常一样,不明白.什么是最好的跨浏览器方式?
我有 textarea,我想更改说明插入符号(光标)后面的字符的文本。
<textarea id="text"></textarea>
<br/>
Character after the caret: <span id="char"></span>
Run Code Online (Sandbox Code Playgroud)
我知道如何获得插入符号位置。问题是我不知道当用户移动插入符号时会调用什么事件(通过键入、按箭头键、单击、粘贴文本、剪切文本等)。
在我看来,我正在努力完成一些相当简单的事情.当使用类似文本输入的东西时也是如此.我正在尝试在textarea上创建模型绑定,其中当用户键入时,值显示带有前缀和后缀.前缀和后缀是引号:
“My awesome quote”
Run Code Online (Sandbox Code Playgroud)
问题是,我目前正在使用ng-model,我当然不能使用它.我正在考虑绑定到变量,保持没有前缀和后缀的值,然后观察该变量.当具有原始值的变量随后发生变化时,我会在范围上将带有pre和suffix的值写入另一个变量.然后,当用户输入时,该变量将显示在textarea中.唯一的问题是,与输入字段不同,textarea没有value属性.
这甚至可能吗?
编辑
如果我用输入文本字段在哪里实现这一点,我将创建一个名为A的变量,以保存在用户键入时更改的原始值.当A发生变化时,我会接受原始值,在其周围加上引号并将该新值存储在另一个变量中,也在范围内.这个新变量叫做B.
然后,输入字段将在A变量上使用ng-bind,并使用输入字段值属性显示B变量中的内容.如下所示:
<input type="text" ng-bind="A" value="{{B}}">
Run Code Online (Sandbox Code Playgroud)
我现在没有时间创造一个小提琴,但我会在本周晚些时候尝试这样做.上面的描述都是理论上的,因为我还没有测试过它.
我正在尝试实现一个textarea,它自动在React中插入紧密的parens,但每当我修改textarea的value属性时,光标会跳转到正在编辑的文本的末尾.
这是我的onChange函数:
//on change
function(event) {
var newText = event.target.value
var cursorPosition = getCursorPosition(event.target)
if(lastCharacterWasParen(newText, cursorPosition)){
newText = newText.slice(0, cursorPosition) + ')' + newText.slice(cursorPosition)
}
this.setProps({text: newText}})
}
Run Code Online (Sandbox Code Playgroud)
这成功插入了paren,但如何保留光标位置?
有没有办法向HTML textarea添加项目符号?
我想添加一个简单的功能,为文本区域中的每一行添加一个项目符号点(类似于列表项目符号点).