jquery在X个字符后插入文本到textarea

标签 jquery

    var currentposition = 10; // after 10 characters
    var text = ":)";

    $(".insert").click(function () {
           // Need help here
    });

<textarea id="messagebox">Example text for the code</textarea>

如何在文本区域中一定数量的字符之后插入文本(文本区域中有文本),在本例中为 10。文本区域中也可能根本没有任何文本,在这种情况下 currentposition 将是0.

此代码的目的是在当前光标位置输入表情符号。

最佳答案

我建议使用类似.substring()的东西:

var currentposition = 10;
var text = ":)";

$('textarea').val($('textarea').val().substring(0,currentposition) + text + 
    $('textarea').val().substring (currentposition));

<强> Jsfiddle example

更新:如果您希望将光标定位在文本末尾,您可以尝试在更改文本区域的值之前调用 .focus() 方法:

$('textarea').focus().val($('textarea').val().substring(0,position) + ' :) ' + 
    $('textarea').val().substring (position));

但我不确定它是否适用于所有浏览器(IE 可能存在问题)

关于jquery在X个字符后插入文本到textarea,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16220241/

相关文章:

Jquery 使用同一按钮隐藏/显示多个 div

jquery - 为轮播横幅添加视差效果,使图像和文本以不同的速度移动

javascript - jQuery 隐藏选择列表中的选项

Javascript 将输入文件传递给 PHP

jquery - iPhone 模拟器理解第一个 "click"jQuery 事件,但不理解第二个

javascript - 将 jQuery 事件应用于所有类元素?

php - jQuery + 重力形式 : Perform jQuery on bad validation

javascript - 验证字数统计 tinymce

javascript - jQuery Ajax 加载表而不是整个页面

javascript - 在组件外部设置组件状态会导致错误