gpt4 book ai didi

Javascript - 删除输入字段中的光标位置

转载 作者:搜寻专家 更新时间:2023-10-31 08:23:37 25 4
gpt4 key购买 nike

您将如何删除更改输入字段中光标位置的功能。因此,当用户键入时,他们总是会在最后键入。

最佳答案

您可能会遇到一些旧的浏览器限制,但这只是为了让您了解一下。
您需要处理 pastekeydown 事件。对于粘贴,您可能需要 Clipboard API 来拯救。废话不多说了:

function setRng(el, txt, from, to) {
el.setSelectionRange(from + txt.length, to + txt.length);
}

function insVal(el, txt, from, to) {
from = Math.max(0, from);
to = to || from;
el.value = el.value.substring(0, from) + txt + el.value.substring(to, el.value.length);
setRng(el, txt, from, from);
}

function writeToEnd(ev) {
var el = ev.target;
var key = ev.keyCode;
var isBackspace = key === 8;
var isPaste = ev.type === "paste";
var txt = isPaste ? (ev.clipboardData || window.clipboardData).getData('Text') : '';
var fromOffset = isBackspace ? -1 : 0;

if (txt && txt.length > 1 || isPaste || isBackspace) ev.preventDefault(); // Cause of some special input
insVal(el, txt, el.value.length + fromOffset, el.value.length);
}

[...document.querySelectorAll('.writeToEnd')].forEach(el => {
el.addEventListener('keydown', writeToEnd);
el.addEventListener('paste', writeToEnd);
});
<input class="writeToEnd" type="text" value="input test"><br>
<textarea class="writeToEnd">textarea test</textarea><br>
(Test also COPY/PASTE using mouse and keyboard)

MDN Clipboard API ,
Stack Overflow get-clipboard-data

关于Javascript - 删除输入字段中的光标位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51579753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com