- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有以下一段 JavaScript,用于将 unicode 字符(下面由 txtToIns 变量表示)动态插入到文本正文中
elmt.value = elmt.value.substring(0, elmt.selectionStart) + txtToIns + " " + elmt.value.substring(elmt.selectionStart, elmt.selectionEnd) + elmt.value.substring(elmt.selectionEnd, elmt.value.length) + " ";
elmt.focus();
elmt.value = elmt.value.trim();
上面的光标总是在文本的末尾。有什么办法可以将它直接放在 txtToIns 之后吗?不,txtToIns.focus() 不会工作
最佳答案
我不确定您要对 textarea 值中的空格字符做什么,尤其是最后一个将在两行后再次被删除的字符,所以我忽略了下面代码中的空格。我也不确定您要对之前选择的文本(如果有)做什么,所以我假设您想用新文本覆盖它。
请记住,这在 IE < 9 中不起作用,它不支持 selectionStart
、selectionEnd
和 setSelectionRange()
。
演示:http://jsfiddle.net/timdown/wPfVn/
代码:
var val = elmt.value;
var start = elmt.selectionStart, end = elmt.selectionEnd;
elmt.value = val.slice(0, start) + txtToIns + val.slice(end);
elmt.focus();
var caretPos = start + txtToIns.length;
elmt.setSelectionRange(caretPos, caretPos);
关于JavaScript setSelectionRange() 方法和光标位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10180075/
这看起来很简单,但它不起作用: document.getElementById('test').setSelectionRange(3,3) test 谷歌浏览器。 最佳答案 var InputEl
此 Angular Directive(指令)会在数字输入字段中每三位数字自动插入逗号(例如“1000”变为“1,000”)。它在我测试过的所有浏览器中都能正确保留光标位置,但配备三星键盘的三星手机除
我有以下一段 JavaScript,用于将 unicode 字符(下面由 txtToIns 变量表示)动态插入到文本正文中 elmt.value = elmt.value.substring(0, e
我在另一个问题上发现了这个: setCaretToPos = function(input, selectionStart, selectionEnd){ if(input.setSel
我做了一个jsFiddle! http://jsfiddle.net/31mts93v/ 我想创建一个以这种方式运行的输入框:当您按左右箭头键时,它会根据光标所在的位置选择(如鼠标选择)上一个单词或下
我很确定我曾经测试过 setSelectionRange 属性的复选框,但他们没有。但在某些浏览器中,情况似乎发生了变化(已测试 Firefox 和 Chrome)。 我过去常常在进行如下选择之前检查
我正在使用 qunit 框架对我在 Chrome 中使用 jquery(即 var $textarea = $(''))以编程方式创建的 HTML 进行单元测试交互。这是我用来更新文本区域中的选择的代
我之前问过为什么 setSelectionRange 不起作用,答案是因为它只适用于输入字段。但我想尝试使用 contenteditable 属性开发电子表格类型的页面。 window.onkeydo
div 中的文本未被选中。我究竟做错了什么? 要进行测试,请双击 div,键入一些文本,然后单击离开。 Example on CodePen . function editIt(div){
我有一个对话框,其中有一个带有 type="time" 的 HTML5 输入字段。在里面。 当对话框出现时,我想将编辑默认为对话框的“分钟”部分。我看不出有什么办法。 这是 jsFiddle尝试使用的
我想保留 HTML 数字字段的光标位置。 $(element).bind('keyup', function (e) { element.val(f($(this).va
我在下面组装了一个基本的 fiddle 。由于某种原因,我的选择器可以检索文本区域框来设置值,但选择器无法使用 setSelectionRange 函数。在控制台上,您会发现错误:.setSelect
我必须在输入字段中(在输入事件中)手动将插入符位置设置为 0。我需要支持 >= IE9。即使在 IE9 中,只要我进行正常输入(按键盘上的键),它就可以正常工作。但是,一旦我使用复制和粘贴,插入符号就
我最初的问题是 this question 的直接欺骗,尝试将光标放在文本区域的末尾。 one two three|<-- ideal position 它在除 Firefox 之外的所有浏览器上运行
我有一个函数可以选择输入 onclick 的前 5 个字符。这适用于第一次点击。当输入框仍然有焦点时,在 chrome 中,前 5 个字符内的第二次单击会删除选择,插入符号会在单击的位置闪烁。 我希望
我正在尝试在 Angularjs 的指令中执行类似的操作。问题是这在系统中工作正常但是当我在 Android 手机中检查相同时它无法设置插入符号位置。我也查看了几个博客和网站,在 Android 设备
我正在处理一些自动完成代码。 setSelectionRange() 用于在 oninput 事件处理程序中选择已完成的文本。它至少适用于 Firefox 14,但不适用于 Chrome(6、17)。
我试图在用户键入时屏蔽电话号码。我已经在 android 2.x 设备上成功地将下面的 javascript 代码与 jquery 和 setTimeout 解决方法一起使用,但我还没有找到适用于 a
JavaScript 函数使用 .setSelectionRange() 选择文本区域中的特定单词。 在 Firefox 中,文本区域会自动向下滚动以显示所选文本。在 Chrome (v14) 中,它
这个问题修改了 question在 r/reactjs 上。 我有一个受控的输入,我可以通过编程方式更改其值。我想使用.setSelectionRange()为了保持输入中插入符号的位置。 除非这不起
我是一名优秀的程序员,十分优秀!