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

Тема в разделе "JavaScript", создана пользователем KODEAK, 28 окт 2014.

Модераторы: ZiX
  1. KODEAK

    KODEAK

    Регистр.:
    11 апр 2009
    Сообщения:
    160
    Симпатии:
    15
    Подскажите пожалуйста как сделать добавление данных не только в конец строчек а скажем там где стоит курсор в 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> 
     
  2. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    так пробовали?
    Код:
    $.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');
     
  3. KODEAK

    KODEAK

    Регистр.:
    11 апр 2009
    Сообщения:
    160
    Симпатии:
    15
    Спасибо но что то не работает =(
     
  4. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.728
    Симпатии:
    2.105
    не будет работать скорее всего по причине неподсоединённой библиотеки jquery
     
  5. KODEAK

    KODEAK

    Регистр.:
    11 апр 2009
    Сообщения:
    160
    Симпатии:
    15
    у меня только так заработало
    Код:
    $.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();
        }
      })
    }
    });
     
  6. KODEAK

    KODEAK

    Регистр.:
    11 апр 2009
    Сообщения:
    160
    Симпатии:
    15
    Можно попросить о помощи еще =)

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

    Код:
            <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>
    и вот почему то после загрузки при нажатии на кнопку добавить ничего не происходит, в чем ошибка ?