2017-08-28 32 views
0

我添加字符的HTML输入字段使用JavaScript光标问题,当手动添加字符输入元素

document.querySelector('input'); 
input.value += getChar(); 

DEMO

虽然这个工作,还有比添加更多的字符时,一个问题适合输入的视口。其结果是,插入符号是不可见的再

我发现一个黑客来解决这个问题是:

input.blur(); 
input.focus(); 

在这个已经实现的演示,但是,这个黑客不工作边。任何建议如何把这个插入视线?

+0

此修复程序没有做在Firefox的伎俩(我想我的版本是最新的一个,更新了一些天前),但显示效果还是比边缘更少怪异(插入符号与小“取消”十字叉重叠) – Kaddath

+0

@Kaddath如果您有解决方案,您可以发布一个链接吗? Thnx –

+0

如果我找到一些东西,我会让你知道当然;) – Kaddath

回答

1

这是一款适用于Firefox,Chrome,Opera和Edge(未在Safari上测试)的软件。

某些部分是没用的一些浏览器,当然,和试验应属性的存在对旧的浏览器支持进行,但这个工程:

对于Firefox的blur()是没用的,但在Chrome必要的。

对于Edge,select()它向右移动,下一行取消选择文本。

function caretIntoView() { 
    input.setSelectionRange(input.value.length, input.value.length); 
    input.blur(); 
    input.focus(); 
    input.select(); 
    input.selectionStart = input.selectionEnd = input.value.length; 
} 

修改后的小提琴:https://jsfiddle.net/xxk04mn6/7/

+0

我可以证实,这确实适用于所有浏览器。 –