Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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 模拟退格按钮JS_Javascript_Jquery - Fatal编程技术网

Javascript 模拟退格按钮JS

Javascript 模拟退格按钮JS,javascript,jquery,Javascript,Jquery,我想创建一个自定义退格按钮,其逻辑与键盘上的“退格”按钮相同。我使用以下代码: 函数退格() { var e=jQuery.Event(“keyup”); e、 其中=8;//#一些关键代码值 e、 keyCode=8; $(“mainDiv”)。触发器(e); } 退格 只需更新js即可。我在这里找到了一个用于查找插入符号位置的片段: 请注意,以下代码假定: “可编辑”和“否”字段中始终有一个文本节点 其他节点 可编辑div没有将CSS空白属性设置为pre 函数退格() { p=do

我想创建一个自定义退格按钮,其逻辑与键盘上的“退格”按钮相同。我使用以下代码:

函数退格()
{
var e=jQuery.Event(“keyup”);
e、 其中=8;//#一些关键代码值
e、 keyCode=8;
$(“mainDiv”)。触发器(e);
}

退格

只需更新js即可。我在这里找到了一个用于查找插入符号位置的片段:

请注意,以下代码假定:

  • “可编辑”和“否”字段中始终有一个文本节点 其他节点

  • 可编辑div没有将CSS空白属性设置为pre

函数退格()
{
p=document.getElementById(“mainDiv”);
c=getCaretPosition(p);
str=$(“#mainDiv”).html();

如果(c>0&&c这将是一个解决方案:


我手动创建了退格功能,而不是复制事件。

输入解决方案

backSpace=函数()
{
var str=$(“#文本_输入”).val();
var position=document.getElementById('text_input')。selectionStart-1;
str=str.substr(0,位置)+''+str.substr(位置+1);
$(“文本输入”).val(str);
}

退格

添加到@CosLu的答案中

函数退格(){
p=document.getElementById(“mainDiv”);
c=getCaretPosition(p);
log(getCaretPosition(p));
str=$(“#mainDiv”).html();

如果(c>0&&c这个代码对我来说很好。 您可以在插入符号位置逐字清除或清除所选内容

var textbox=document.getElementById('textbox');
函数退格()
{
var ss=textbox.selectionStart;
var se=textbox.selectionEnd;
var ln=textbox.value.length;
var textbefore=textbox.value.substring(0,ss);//所选文本前面的文本
var textselected=textbox.value.substring(ss,se);//所选文本
var textfeater=textbox.value.substring(se,ln);//所选文本后面的文本
if(ss==se)//如果未选择文本
{
textbox.value=textbox.value.substring(0,ss-1)+textbox.value.substring(se,ln);
textbox.focus();
textbox.selectionStart=ss-1;
textbox.selectionEnd=ss-1;
}
else//如果选择了某些文本
{
textbox.value=textbefore+textafter;
textbox.focus();
textbox.selectionStart=ss;
textbox.selectionEnd=ss;
}
}


BACKSPACE_按钮
尝试放置您的实时示例,而不是链接到JS Fiddle这样的第三方网站。相关:单击此按钮时,您希望此按钮做什么?您希望使用此按钮删除某些文本中的字母还是加载浏览器中的上一页?使用jQuery时要小心。要引用您应该使用的id#id“不仅仅是”id".插入符号位置呢?我的意思是OP似乎只是提供了按钮,例如谢谢您的回答,但我必须删除光标位置的字符,而不是div标记中的最后一个字符,因此您应该在文本区域或输入字段中拥有数据。从您的示例来看,它似乎应该位于div内。@CosLu是的,在我的示例中,应该是div tag@NikitaErmolenko是的,谢谢!但是需要div标签的解决方案:(只需要从光标位置删除左边的元素。再次感谢!但我在插入特殊符号时遇到了问题。当我插入“sigma”然后单击“backSpace”按钮时,我看到错误的逻辑(函数删除错误的字符)。要正确设置逻辑,我必须手动设置插入符号位置,然后单击“退格”。请参阅附件。这是因为当您插入西格玛时,
backSpace()
中的克拉位置重置为1.。@shyammakwana.me:虽然它的内容可编辑,但它不适用于标签:(
function backSpace()
{
  var txt = $("#mainDiv").text();
  txt = txt.substr(0,txt.length-1)
  $("#mainDiv").text(txt);
}