gpt4 book ai didi

javascript - 没有下拉列表的

标签的自动完成建议

转载 作者:行者123 更新时间:2023-11-30 06:17:36 25 4
gpt4 key购买 nike

我正在尝试对可编辑的段落标记进行自动完成(无需下拉)。如何在用户输入时使用 javascript/jQuery 选择 contenteditable p 标签中剩余的建议字母?

enter image description here

// On typing
$(document).on('input', '.cell-input', function(e) {
var userInput = e.target.innerText;

// Suggested 'Bond' to user, because user typed (assumption) 'B'
e.target.innerText = 'Bond';

// Select
$(e.target).selectText(1, 3);
});

// To select
jQuery.fn.selectText = function(startPos, endPos){
var doc = document;
var element = this[0];

if (doc.body.createTextRange) {
var range = document.body.createTextRange();
range.moveToElementText(element);
range.select();
}
else if (window.getSelection) {
var selection = window.getSelection();
var range = document.createRange();
range.selectNodeContents(element);
selection.removeAllRanges();
selection.addRange(range);
}
};

全选工作正常。然后我尝试添加:

selection.moveEnd("character", endPos);
selection.moveStart("character", startPos);

range.moveEnd("character", endPos);
range.moveStart("character", startPos);

.. 但运气不好。我的方向正确吗?请指教。

最佳答案

使用 setStart()setEnd()

$(document).on('input', '.cell-input', function(e) {
var userInput = e.target.innerText;

// Suggested 'Bond' to user, because user typed (assumption) 'B'
e.target.innerText = 'Bond';

// Select
$(e.target).selectText(1, 4);
});

// To select
jQuery.fn.selectText = function(startPos, endPos) {
var doc = document;
var element = this[0];

if (doc.body.createTextRange) {
var range = document.body.createTextRange();
range.moveToElementText(element);
range.select();
} else if (window.getSelection) {
var selection = window.getSelection();
var range = document.createRange();
range.setStart(element.firstChild, startPos);
range.setEnd(element.firstChild, endPos);
selection.removeAllRanges();
selection.addRange(range);
}
};
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<p class="cell-input" contenteditable="true">B</p>

注意:使用 element.firstChild 可能不适用于 HTML 子节点

关于javascript - 没有下拉列表的 <p> 标签的自动完成建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55176747/

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