Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在点击按钮的任意位置将特殊字符插入文本输入?_Javascript - Fatal编程技术网

Javascript 如何在点击按钮的任意位置将特殊字符插入文本输入?

Javascript 如何在点击按钮的任意位置将特殊字符插入文本输入?,javascript,Javascript,这个问题已经被问了好几次了。但是,它们都不能解决在任意点插入的问题 因此,如果您有一个文本输入或文本区域,并且有一个按钮用于键盘上没有的符号(例如pi),或者有一个按钮用于突出显示文本,那么您可以添加重音或其他变音标记。如何将其插入当前插入符号位置或选择?如果用户移动光标,并且当单击鼠标时,您失去了对输入的关注,这将删除插入符号或选择,那么这不一定是在最后 <input id="formula" type="text"> <button onclick="insertIntoF

这个问题已经被问了好几次了。但是,它们都不能解决在任意点插入的问题

因此,如果您有一个文本输入或文本区域,并且有一个按钮用于键盘上没有的符号(例如pi),或者有一个按钮用于突出显示文本,那么您可以添加重音或其他变音标记。如何将其插入当前插入符号位置或选择?如果用户移动光标,并且当单击鼠标时,您失去了对输入的关注,这将删除插入符号或选择,那么这不一定是在最后

<input id="formula" type="text">
<button onclick="insertIntoFormula">π</button>

π
听起来像是您想要的(突出显示文本的起始索引)和(突出显示文本的结束索引)。如果只是一个光标,它们都将返回其位置

函数插入公式(specialChar){
const textarea=document.getElementById('formula');
const insertStartPoint=textarea.selectionStart;
const insertEndPoint=textarea.selectionEnd;
让value=textarea.value;
//光标前文本/高亮显示文本+特殊字符+光标后文本/高亮显示文本
value=value.slice(0,insertStartPoint)+specialChar+value.slice(insertEndPoint);
textarea.value=值;
}

π

é
在输入中返回/指向所选文本的源代码在哪里?这可能对您有所帮助?@NewToJS由于输入失去焦点的问题,这会将符号插入字符串的开头(而不是插入符号位置)。这就是我不知道该怎么办的问题。啊,是的,我道歉。不知道我怎么会在你的问题描述中漏掉这个。我不确定这是否可能。你知道即使焦点切换到按钮,谁会保留插入符号位置吗?@qw3n你可以运行上面的代码片段,看看它是如何工作的。当焦点切换到按钮时,它将记住插入符号的位置。(但是,在随后的单击中,它似乎总是将插入符号位置重置为起始位置。您必须为它添加一些额外的代码,以记住用户是否经常连续单击按钮两次。)