gpt4 book ai didi

javascript - 如何根据光标位置获取文本框的id

转载 作者:行者123 更新时间:2023-12-03 08:13:07 25 4
gpt4 key购买 nike

我在 div 元素内有多个文本框。我想通过单击按钮时的光标位置在文本框中插入一些文本。如果我知道文本框的 id,我就可以成功插入文本,但我无法知道光标当前所在的元素。

<div>

<input type="text" id="txt1" />
<input type="text" id="Text2" />
<input type="text" id="Text3" />
<input type="button" value="Add" id="btnAdd" />
</div>

$('#btnAdd').click(function () {
insertDataVarables(document.getElementById('txt1'), 'insertedText')
});

function insertDataVarables(myField, myValue) {
//IE support
if (document.selection) {
myField.focus();
sel = document.selection.createRange();
sel.text = myValue;
}
//MOZILLA and others
else if (myField.selectionStart || myField.selectionStart == '0') {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
myField.value = myField.value.substring(0, startPos)
+ myValue
+ myField.value.substring(endPos, myField.value.length);
myField.selectionStart = startPos + myValue.length;
myField.selectionEnd = startPos + myValue.length;
} else {
myField.value += myValue;
}
}

那么我如何通过光标位置知道文本框ID。

提前致谢

最佳答案

要在单击按钮时捕获焦点输入,您必须在输入失去焦点之前监听 mousedown 事件。
click 事件来得太晚了,那时输入已经失去焦点。

要获取当前焦点(事件)元素,可以使用 document.activeElement

所以像这样:

$('#btnAdd').on('mousedown', function() {
var el = document.activeElement;

insertDataVarables(el, 'insertedText')
});

FIDDLE

关于javascript - 如何根据光标位置获取文本框的id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34063148/

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