javascript - 无法在光标位置的文本框中插入符号

标签 javascript jquery html twitter-bootstrap twitter-bootstrap-3

我旁边有一个文本框和一个编辑按钮,当我单击编辑按钮时,将出现一个包含符号按钮的弹出框。

然后,当您单击相应的符号时,它会出现在文本框中。但是,在相应的符号按钮单击时,它会一个接一个地附加。我需要将光标插入到文本框中的任何位置。

的HTML

<div class="col-md-3 col-xs-9 col-sm-9">
    <div class="input-group">
        <input type="text" class="form-control" id="symboltext"> 
            <span class="input-group-btn">
             <button class="btn btn-default" type="button" id="popbutton" data-placement="bottom" data-container="body">
         <span class="glyphicon glyphicon-edit"></span>
        </button>
        </span>
    </div>
</div>


的JavaScript

    var popupElement = '<div class="btn-group" role="group"><button class="btn btn-sm btn-default" id="regbtn"><span class="glyphicon glyphicon-registration-mark"></button><button class="btn btn-sm btn-default" id="copyrightbtn"><span class="glyphicon glyphicon-copyright-mark"><span></button><button class="btn btn-sm btn-default" id="trademarkbtn"><sup>TM</sup></button></div>';

$('#popbutton').popover({
    animation: true,
    content: popupElement,
    html: true
});


$(document).on('click', "#trademarkbtn", function () {
    $("#symboltext").val($("#symboltext").val()+"\u2122 " );
});

$(document).on('click', "#regbtn", function () {
    $("#symboltext").val($("#symboltext").val()+"\u00AE ")
});

$(document).on('click', "#copyrightbtn", function () {
    $("#symboltext").val($("#symboltext").val()+"\u00A9 " )
});


Fiddle here

最佳答案

尝试这个:-

创建函数以获取光标位置

function textbox()
{
 var ctl = document.getElementById('symboltext');
 var startPos = ctl.selectionStart;
 var endPos = ctl.selectionEnd;
 return {s:startPos,e:endPos};
}


创建函数以在特定索引处插入值

function getVal(insert){
 var val=$("#symboltext").val();
 var index = textbox();
 val = val.slice(0,index.s) + insert + val.slice(index.s)
 return val;
}


这样的通话功能

$(document).on('click', "#regbtn", function () {
 var val=getVal("\u00AE ");
 $("#symboltext").val(val);  
});


Demo

关于javascript - 无法在光标位置的文本框中插入符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33771945/

相关文章:

javascript - NeutralinoJS 存储

jquery - 访问.each()循环访问的元素而无需调用$(this)

javascript - 如何将函数名称作为参数传递,然后再引用该函数?

javascript - 我如何才能将按钮更改为而不是将div从可见更改为不可见,从而做到相反呢?

javascript - 使用包含 ":"(或其他特殊字符)的属性名称的 knockout

javascript - 如何选择字符串的一部分?

php - 你能从 PHP 循环中调用 JavaScript 函数吗?

html - 如何在 SASS 中表达标签名称的 SCSS 声明变量

javascript - 单击时创建变暗的背景

javascript - 从按钮引发 onchange 事件 html 输入文件