jQuery textarea - 插入模式光标位置

标签 jquery jquery-plugins jquery-selectors jquery-validate

在文本区域中,如何使用 jQuery 在光标位置旁边插入模式 name ,然后光标应位于模式后面:这应该在单击按钮时发生

     <input type="button" value="insert pattern" >
     <textarea rows="10" id="comments">INSERT The condition</textarea>

最佳答案

请参阅this answer 。这就是我得到 insertAtCaret() 方法的地方。我继续将其连接到您的按钮...不确定您所说的“模式名称”到底是什么意思。这是 SQL 的事情吗?它是否基于 HTML 中的某些先前输入字段?如果没有更多细节,很难提供更多帮助。

function insertAtCaret(areaId,text) {
    var txtarea = document.getElementById(areaId);
    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 range = document.selection.createRange();
        range.moveStart ('character', -txtarea.value.length);
        range.moveStart ('character', strPos);
        range.moveEnd ('character', 0);
        range.select();
    }
    else if (br == "ff") {
        txtarea.selectionStart = strPos;
        txtarea.selectionEnd = strPos;
        txtarea.focus();
    }
    txtarea.scrollTop = scrollPos;
}


$(document).ready(function(){
  $("#insertPattern").click(function(){
    insertAtCaret("comments","name");
  });
});​

然后,在您的 HTML 中:

  <input id="insertPattern" type="button" value="insert pattern" />
  <textarea rows="10" id="comments">INSERT The condition</textarea>

希望这有帮助!

关于jQuery textarea - 插入模式光标位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3626171/

相关文章:

jquery - 删除附加项目

jquery - 当用户在最后一个文本框中键入内容时动态添加文本框

jquery - 如何选择不是当前元素的直接祖先的元素?

javascript - jQuery scrollTop() 不适用于 Firefox 中的 'body' 元素

jquery - 如何使用jquery查找表中的某个行索引

php - 如何将数组元素传递给ajax?

javascript - css 响应式网格 - 行之间的水平线

jQuery文件上传插件: How to upload to subfolders?

Jquery - 100% 宽度的幻灯片同时保持高度成比例

jquery - 重新加载可动态数据