textarea在光标位置插入文字

最近开发类似计算器界面,需要在textarea中编辑公式,涉及到 在光标位置插入 字符。

效果如下:

+ - * / 添加文字

html代码如下:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>hover demo</title>
</head>
<body>

<textarea rows="8" cols="35" id="areaId"> </textarea>
<p></p>
<button class="btn btn-sm btn-purple"  onclick="addExpressContent(‘+‘)">+</button>
<button class="btn btn-sm btn-purple"  onclick="addExpressContent(‘-‘)">-</button>
<button class="btn btn-sm btn-purple"  onclick="addExpressContent(‘*‘)">*</button>
<button class="btn btn-sm btn-purple"  onclick="addExpressContent(‘/‘)">/</button>
<button class="btn btn-sm btn-purple"  onclick="addExpressContent(‘测试文字‘)">添加文字</button>

<script>
/**
 * 添加内容
 */
function addExpressContent(str){
    var obj = document.getElementById("areaId");
     if (document.selection) {
           var sel = document.selection.createRange();
           sel.text = str;
       } else if (typeof obj.selectionStart === ‘number‘ && typeof obj.selectionEnd === ‘number‘) {
           var startPos = obj.selectionStart;
           var    endPos = obj.selectionEnd;
           var    cursorPos = startPos;
           var    tmpStr = obj.value;
           obj.value = tmpStr.substring(0, startPos) + str + tmpStr.substring(endPos, tmpStr.length);
           cursorPos += str.length;
           obj.selectionStart = obj.selectionEnd = cursorPos;
       } else {
           obj.value += str;
       }
}
</script>
</body>
</html>
时间: 2024-10-07 19:08:21

textarea在光标位置插入文字的相关文章

textarea 在光标处插入文字

html: <textarea id="text" style="width:500px;height:80px;">欢迎访问http://cssfirefly.cnblogs.com/</textarea> <input type="button" value="插入文字" onclick="insertText(document.getElementById('text'),' Ne

textarea光标处插入文字

(function($) { $.fn.extend({ //myField 对象元素 myValue 插入值 insertAtCursor: function(myField,myValue) { //IE下 if (document.selection) { myField.focus();//输入元素textara获取焦点 var fus = document.selection.createRange(); //获取光标位置 fus.text = myValue;//在光标位置插入值 m

JQ在光标处插入文字

内容转载自网络这是一个JQ的扩展方法.在teatarea获得焦点时,往光标处插入文字,扩展代码如下 (function($){ $.fn.extend({ "insert":function(value){ //默认参数 value=$.extend({ "text":"123" },value); var dthis = $(this)[0]; //将jQuery对象转换为DOM元素 //IE下 if(document.selection){

JQuery在光标位置插入内容

1 (function($) { 2 $.fn.extend({ 3 insertAtCaret: function(myValue) { 4 var $t = $(this)[0]; 5 //IE 6 if (document.selection) { 7 this.focus(); 8 sel = document.selection.createRange(); 9 sel.text = myValue; 10 this.focus(); 11 } else 12 //!IE 13 if

【Javascript】在文本框光标处插入文字并定位光标 (转)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

将richTextBox中的内容写入txt文件发现不换行(解决方法),在richTextBox指定位置插入文字

string pathname = dt.ToString().Replace(":", ""); string str = richTextBoxResult.Text; str = str.Replace("\n", "\r\n");     //关键 File.AppendAllText(@"D:\" + pathname + ".txt", str, Encoding.Defau

富文本光标位置插入dom元素

//获得富文本框中光标的位置 function getCursortPosition(element) { var doc = element.ownerDocument || element.document; var win = doc.defaultView || doc.parentWindow; var sel; if (typeof win.getSelection != "undefined") { sel = win.getSelection(); if (sel.ra

使用JS在textarea在光标处插入内容

// 在光标处插入字符串 // myField 文本框对象 // myValue 要插入的值 function insertAtCursor(myField, myValue) { //IE support if (document.selection) { myField.focus(); sel = document.selection.createRange(); sel.text = myValue; sel.select(); } //MOZILLA/NETSCAPE support

在光标选中位置插入文字js

//调用方法 insertText(document.getElementById('codeTextarea'), "{GD_" + name + "}") //获取文本框中光标的位置function insertText(obj, str) { if (document.selection) { var sel = document.selection.createRange(); sel.text = str; } else if (typeof obj.se