Добавление данных в textarea

KODEAK

Полезный
Регистрация
11 Апр 2009
Сообщения
172
Реакции
16
Подскажите пожалуйста как сделать добавление данных не только в конец строчек а скажем там где стоит курсор в textarea
Код:
<textarea id="test" rows="3"></textarea>
<button class="btn">click !</button>
        <script type="text/javascript">
        $(document).ready(function($){
            $('.btn').click(function(){
                var text = $('#test').val();
                var url =  text + 'ssssss';
                $('#test').val( t );

            });
        });
        </script>
 
так пробовали?
Код:
$.fn.extend({
    insertAtCaret: function(myValue) {
        if (document.selection) {
                this.focus();
                sel = document.selection.createRange();
                sel.text = myValue;
                this.focus();
        }
        else if (this.selectionStart || this.selectionStart == '0') {
            var startPos = this.selectionStart;
            var endPos = this.selectionEnd;
            var scrollTop = this.scrollTop;
            this.value = this.value.substring(0, startPos)+myValue+this.value.substring(endPos,this.value.length);
            this.focus();
            this.selectionStart = startPos + myValue.length;
            this.selectionEnd = startPos + myValue.length;
            this.scrollTop = scrollTop;
        } else {
            this.value += myValue;
            this.focus();
        }
    }
})

ну и
Код:
Usage: $('#element').insertAtCaret('text');
 
Спасибо но что то не работает =(
 
у меня только так заработало
Код:
$.fn.extend({
insertAtCaret: function(myValue){
  return this.each(function(i) {
    if (document.selection) {
      //For browsers like Internet Explorer
      this.focus();
      sel = document.selection.createRange();
      sel.text = myValue;
      this.focus();
    }
    else if (this.selectionStart || this.selectionStart == '0') {
      //For browsers like Firefox and Webkit based
      var startPos = this.selectionStart;
      var endPos = this.selectionEnd;
      var scrollTop = this.scrollTop;
      this.value = this.value.substring(0, startPos)+myValue+this.value.substring(endPos,this.value.length);
      this.focus();
      this.selectionStart = startPos + myValue.length;
      this.selectionEnd = startPos + myValue.length;
      this.scrollTop = scrollTop;
    } else {
      this.value += myValue;
      this.focus();
    }
  })
}
});
 
не будет работать скорее всего по причине неподсоединённой библиотеки jquery
Можно попросить о помощи еще =)

у меня есть вот такая штука

Код:
        <script type="text/javascript">
        $(document).ready(function($){
            // Upload
            $('#InputImage').fileupload({
                url: '<?php echo \Uri::create('/post/upload'); ?>',
                type: 'POST',
                dataType: 'json',
                autoUpload: true,
                loadImageFileTypes: '/^image\/(jpg|jpeg|png)$/',    
                fail: function (e, data) {
                },
                done: function(e, data) {
                    if(data.result.status == 1) {
                        $(".securityKey").attr("value", fuel_csrf_token());
                        $('#post-uploads').append('<li><img src="'+data.result.html+'" width="15%"><button class="btn btn-success btn-attach-add pull-right" data-attach="'+data.result.attach+'">Добавить</button></li>');
                    }
                    else
                    {
                        $.notify(data.result.error);
                    }
                }
            });
            // add function
            $.fn.extend({
                insertAtCaret: function(myValue) {
                    return this.each(function(i) {
                        if (document.selection) {
                            //For browsers like Internet Explorer
                            this.focus();
                            sel = document.selection.createRange();
                            sel.text = myValue;
                            this.focus();
                        } else if (this.selectionStart || this.selectionStart == '0') {
                            //For browsers like Firefox and Webkit based
                            var startPos = this.selectionStart;
                            var endPos = this.selectionEnd;
                            var scrollTop = this.scrollTop;
                            this.value = this.value.substring(0, startPos)+myValue+this.value.substring(endPos,this.value.length);
                            this.focus();
                            this.selectionStart = startPos + myValue.length;
                            this.selectionEnd = startPos + myValue.length;
                            this.scrollTop = scrollTop;
                        } else {
                            this.value += myValue;
                            this.focus();
                        }
                    })
                }
            });
            // add btn
            $('.btn-attach-add').click(function(){
                var attach = $(this).data('attach');
                $('#editor').insertAtCaret('[attach]'+attach+'[/attach]');
           
            });
        });
        </script>
и вот почему то после загрузки при нажатии на кнопку добавить ничего не происходит, в чем ошибка ?
 
Назад
Сверху