2016-04-28 6 views
1

у меня есть это текстовое поле, что, когда я нажимаю ссылку, 2 двойные кавычки были вставлены:Установка курсора между двумя цитатами

<textarea name="comment" id="comment" placeholder="Comment..."></textarea> 
<div id="insert"> 
<a href="javascript:;" title='""'>QUOTES</a> 
</div> 
    <script type="text/javascript" src="jscript.js"></script> 
    <script type="text/javascript"> 
     $('#insert a').click(function() { 
    var smiley = $(this).attr('title'); 
    ins2pos(smiley, 'comment'); 
}); 

function ins2pos(str, id) { 
    var TextArea = document.getElementById(id); 
    var val = TextArea.value; 
    var before = val.substring(0, TextArea.selectionStart); 
    var after = val.substring(TextArea.selectionEnd, val.length); 

    TextArea.value = before + str + after; 
    setCursor(TextArea, before.length + str.length); 

} 

function setCursor(elem, pos) { 
    if (elem.setSelectionRange) { 
     elem.focus(); 
     elem.setSelectionRange(pos, pos); 
    } else if (elem.createTextRange) { 
     var range = elem.createTextRange(); 
     range.collapse(true); 
     var posr = pos - 1; 
     range.moveEnd('character', posr); 
     range.moveStart('character', posr); 
     range.select(); 
    } 
} 
</script> 

Когда ссылка котировка была нажата курсор идет после последнего символа в текстовое поле, как это ""|, но я хочу, чтобы курсор находиться между 2 кавычками что-то вроде этого "|"

+3

Может быть, делать 'SetCursor (Te xtArea, before.length + str.length - 1); '? – Halcyon

+1

спасибо Halcyon, он отлично работал –

ответ

0

Это решение

setCursor(TextArea, before.length + str.length - 1);