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

Javascript 无法在文本框中的光标位置插入符号,javascript,jquery,html,twitter-bootstrap,twitter-bootstrap-3,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

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

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

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 " )
});
var popupElement='TM';
$(“#popbutton”).popover({
动画:没错,
内容:popupElement,
html:对
});
$(文档)。在('click',“#trademarkbtn”,函数(){
$(“#symboltext”).val($(“#symboltext”).val()+“\u2122”);
});
$(文档).on('click',“#regbtn”,函数(){
$(“#symboltext”).val($(“#symboltext”).val()+“\u00AE”)
});
$(文档)。在('单击',“#版权BTN”,函数(){
$(“#symboltext”).val($(“#symboltext”).val()+“\u00A9”)
});
试试这个:-

创建函数以获取光标位置

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);  
});

我不太明白。代码似乎对我有用。我做了这个:`©这个©有效™ 对于me®`
var v=$(“#符号文本”)[0]$(“#symboltext”).val(v.value.slice(0,v.selectionStart)+“BLAH”+v.value.slice(v.selectionStart+1))
@cory首先插入一些文本,然后将光标放在任何单词的中间并尝试插入符号是的,我能为您提供什么帮助?与相同的问题相关,但要求不同。这里尝试一次插入多个符号,它不起作用。只在光标点插入一次符号。之后,它将在末尾追加。因为当您单击textbox的符号模糊功能时,它将启动,这意味着textbox中现在不存在光标。是否还有其他方法可以克服此问题?在这里