当前位置: 首页 > 面试题库 >

在使用JavaScript / jquery的游标中插入文本

江鹏飞
2023-03-14
问题内容

我的页面上有很多文本框。当有人单击链接时,我希望在光标所在的位置插入一两个单词,或将其附加到具有焦点的文本框中。

例如,如果光标/焦点在文本框上说“ apple”,而他单击一个链接上说“ [email]”,那么我希望文本框说“ apple
bob@example.com”。

我怎样才能做到这一点?如果焦点集中在radio / dropdown / non textbox元素上,该怎么办呢?可以记住上一个专注于文本框的内容吗?


问题答案:

从这里使用:

function insertAtCaret(areaId, text) {

  var txtarea = document.getElementById(areaId);

  if (!txtarea) {

    return;

  }



  var scrollPos = txtarea.scrollTop;

  var strPos = 0;

  var br = ((txtarea.selectionStart || txtarea.selectionStart == '0') ?

    "ff" : (document.selection ? "ie" : false));

  if (br == "ie") {

    txtarea.focus();

    var range = document.selection.createRange();

    range.moveStart('character', -txtarea.value.length);

    strPos = range.text.length;

  } else if (br == "ff") {

    strPos = txtarea.selectionStart;

  }



  var front = (txtarea.value).substring(0, strPos);

  var back = (txtarea.value).substring(strPos, txtarea.value.length);

  txtarea.value = front + text + back;

  strPos = strPos + text.length;

  if (br == "ie") {

    txtarea.focus();

    var ieRange = document.selection.createRange();

    ieRange.moveStart('character', -txtarea.value.length);

    ieRange.moveStart('character', strPos);

    ieRange.moveEnd('character', 0);

    ieRange.select();

  } else if (br == "ff") {

    txtarea.selectionStart = strPos;

    txtarea.selectionEnd = strPos;

    txtarea.focus();

  }



  txtarea.scrollTop = scrollPos;

}


<textarea id="textareaid"></textarea>

<a href="#" onclick="insertAtCaret('textareaid', 'text to insert');return false;">Click Here to Insert</a>


 类似资料:
  • 数据库:Oracle 11gr2Web应用:JSP(Java)我有两个表: IdCity_FK引用来自“城市”的列 Id。 问题:如何从具有以下字段的插入.jsp页面插入数据:人名,城市。 我希望用户输入自己的名字,并从动态生成的列表框中选择一个城市(使用游标Oracle或其他方法)。< br >例如,不输入:Andrew,12,而是输入Andrew并选择New York。我使用Oracle RE

  • 我想用字符串替换元素和“randmsg”。下面是我现在掌握的: 有什么想法吗?我是一个JavaScript傻瓜,我做错了什么?

  • 问题内容: 我可以在Javascript中使用Django的模板标签吗?就像在jQuery中使用动态向页面添加表单一样。 问题答案: 是的,我经常这样做。您的javascript必须通过django提供,但是如果您只是将html标头中的javascript作为内联javascript放上了,那就可以了。 例如:我用它在我使用的动态表单上加上前缀。 请注意,在“ base.html”中,我有一个ht

  • 本文向大家介绍JavaScript中在光标处插入添加文本标签节点的详细方法,包括了JavaScript中在光标处插入添加文本标签节点的详细方法的使用技巧和注意事项,需要的朋友参考一下 正确的方法是正确运用Selection对象和Range对象,实现在光标当前位置插入文本或结点。但是这两个对象在IE和标准的DOM方式的运用方法是不同的。 思路:首先获得用户的选区(光标当前位置可理解成起始和终止位置一

  • 这可能是一个很简单的问题,但我对jQuery不是很有经验。我试着谷歌这个问题,但我似乎找不到一个替代的功能,或者也许我做错了这一个。 因此,当我加载页面时,HTML基本上如下所示: 然后我使用一些jQuery来替换按钮的文本,例如用以下代码替换住宅销售和购买: 但是,一旦jQuery运行,它就会给出以下HTML并删除。有什么想法,我可以让它只是取代“住宅销售”和“住宅出租”部分,而不是整个事情?

  • 问题内容: 将焦点设置到元素之后,通过JavaScript将光标放置在输入文本元素中文本末尾的最佳方法(我想是最简单的方法)是什么? 问题答案: 我在IE中遇到了同样的问题(通过RJS /原型设置焦点之后)。当该字段已有值时,Firefox已经将光标留在末尾。IE迫使光标移至文本的开头。 我得出的解决方案如下: IE7和FF3均适用