我在更新面板中有一个输入(文本字段),并且在每次更改文本后都会自动回复。我可以将注意力集中在相同的文本字段上,但是我无法摆脱调用document.getElementById('myTextField')。focus()后出现的文本higlight。 这个解决方案似乎是最准确的:
if (window.getSelection) {
window.getSelection().removeAllRanges();
} else if (document.selection) {
document.selection.empty();
}
但它有一个问题。输入仍然集中,但我不能写文字。我必须在写作之前点击它。
答案 0 :(得分:1)
如果你在焦点后重置你的值,你可以这样做,即
<强> HTML 强>
<input id="myTextField" type="text" value="SomeValue" />
<强> JS 强>
var myInput=document.getElementById('myTextField');
var myInput_value=myInput.value;
myInput.focus();
myInput.value=myInput_value;
答案 1 :(得分:1)
我认为理想的解决方案不会涉及取消设置和重置输入的值。这可能会产生不必要的副作用。在我看来,这是移动插入符号的正确方法:
var input = document.getElementById('inputElement');
input.focus();
if(input.setSelectionRange) {
input.setSelectionRange(input.value.length, input.value.length);
} else {
var range = input.createTextRange();
range.moveStart('character', input.value.length);
range.moveEnd('character', input.value.length);
range.select();
}