2013-04-25 3 views
2
var currentposition = 10; // after 10 characters 
    var text = ":)"; 

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

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

Как я могу вставить текст в текстовом поле после определенного количества символов (есть текст в текстовом поле), в данном случае 10. Там также не может быть каким-либо текстом textarea вообще, и в этом случае текущее положение будет 0.JQuery вставка текста в текстовое поле после X символов

Цель этого кода - ввести смайлики в текущую позицию курсора.

ответ

4

Я рекомендую использовать что-то вроде .substring():

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

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

Jsfiddle example

UPDATE: Если вы хотите, чтобы курсор, расположенный в конце текста, вы можете попробовать вызова .focus() метод до изменение стоимости текстового поля:

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

Но я не уверен, что он будет работать во всех браузерах (могут быть проблемы с IE)

+0

Отлично, спасибо. – Jerry

+0

Не часть вопроса, но, может быть, вы знаете, как перемещать курсор после вставленного текста, а не перед ним. В настоящее время, когда я вставляю два смайлика подряд, второй идет до первого. – Jerry

+0

@ Да, см. Мой обновленный ответ ... – DarkAjax

Смежные вопросы