ФорумПрограммированиеPHP для идиотов → Вставка текста в Textarea

Вставка текста в Textarea

  • monro

    Сообщения: 10 Репутация: N Группа: Кто попало

    Spritz 7 июля 2009 г. 13:52

    Как зделать, чтобы по клике кнопки, в textarea вставлялся какое-то, заданое к примеру слово?
    Я вот, ищу-ищу, не найду, как это организовать?
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 7 июля 2009 г. 13:53, спустя 1 минуту 6 секунд

  • monro

    Сообщения: 10 Репутация: N Группа: Кто попало

    Spritz 7 июля 2009 г. 13:59, спустя 5 минут 48 секунд

    шпасиба
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 7 июля 2009 г. 14:08, спустя 9 минут 12 секунд


    Как зделать, чтобы по клике кнопки, в textarea вставлялся какое-то, заданое к примеру слово?
    Я вот, ищу-ищу, не найду, как это организовать?



    <textarea id="mytext"></textarea>



    document.getElementById('mytext').value = 'слово';


    но лучше юзай jQuery, меньше гемора будет
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • monro

    Сообщения: 10 Репутация: N Группа: Кто попало

    Spritz 8 июля 2009 г. 10:43, спустя 20 часов 34 минуты 54 секунды

    еще один вопрос)
    как организовать вставку текста, перед и после выделенного до этого куска текста, например, теже bb коды, выделил "слово", нажал кнопачку, и вуаля спереди и с зади "слово" выставлено b…../b
    не ругайте мну за такие вопросы)
    Спустя 25 сек.
    поиск кстате не рулит,не работает чото(
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 8 июля 2009 г. 10:49, спустя 5 минут 54 секунды


    function surroundText(text1, text2, textarea)
    {

    if (typeof(textarea.caretPos) != "undefined" && textarea.createTextRange)
    {
    var caretPos = textarea.caretPos, temp_length = caretPos.text.length;

    caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text1 + caretPos.text + text2 + ' ' : text1 + caretPos.text + text2;

    if (temp_length == 0)
    {
    caretPos.moveStart("character", -text2.length);
    caretPos.moveEnd("character", -text2.length);
    caretPos.select();
    }
    else
    {
    textarea.focus(caretPos);
    }
    }
    // Mozilla text range wrap.
    else if (typeof(textarea.selectionStart) != "undefined")
    {
    var begin = textarea.value.substr(0, textarea.selectionStart);
    var selection = textarea.value.substr(textarea.selectionStart, textarea.selectionEnd - textarea.selectionStart);
    var end = textarea.value.substr(textarea.selectionEnd);
    var newCursorPos = textarea.selectionStart;
    var scrollPos = textarea.scrollTop;

    textarea.value = begin + text1 + selection + text2 + end;

    if (textarea.setSelectionRange)
    {
    if (selection.length == 0)
    textarea.setSelectionRange(newCursorPos + text1.length, newCursorPos + text1.length);
    else
    textarea.setSelectionRange(newCursorPos, newCursorPos + text1.length + selection.length + text2.length);
    textarea.focus();
    }
    textarea.scrollTop = scrollPos;
    }
    // Just put them on the end, then.
    else
    {
    textarea.value += text1 + text2;
    textarea.focus(textarea.value.length - 1);
    }
    }




    <textarea name="text" id="comment" cols="100%" rows="10" tabindex="4"></textarea><br />
    <input type="button" value="жирный" onclick="surroundText('<b>', '</b>', document.forms.commentform.comment); return false;"/>
    <input type="button" value="курсив" onclick="surroundText('<i>', '</i>', document.forms.commentform.comment); return false;"/>

    Спустя 100 сек.
    поиск кстате не рулит,не работает чото(
    да, трабла с поисковым сервером… исправляем эту ситуацию
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • monro

    Сообщения: 10 Репутация: N Группа: Кто попало

    Spritz 8 июля 2009 г. 11:05, спустя 16 минут 1 секунду

    фокус постоянно на кнопке, невозможно ниче ввести, это я дурак или так должно быть? о.0
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 8 июля 2009 г. 11:11, спустя 6 минут 36 секунд

    monro, ну выставь фокус куда тебе надо, какой у тебя браузер?
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • monro

    Сообщения: 10 Репутация: N Группа: Кто попало

    Spritz 8 июля 2009 г. 11:13, спустя 1 минуту 43 секунды

    да и при использовании кода http://cmf.org.ru/testtrans.php, при попытке зафокусить textarea, всеравно вылазит слова). браузер гугльхром
    function insert_text(text)
    {

    msgfield = (document.all) ? document.all.req_message : ((document.getElementById('afocus') != null) ? (document.getElementById('afocus').req_message) : (document.getElementsByName('req_message')[0]));

    msgfield.value += text;
    msgfield.focus();

    return false;
    }

    <input type="button" name="button" id="button" value="button" onclick="return insert_text('Однажды в студёную зимнюю пору', '')">
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 8 июля 2009 г. 11:16, спустя 2 минуты 47 секунд

    monro, я для него не тестил, запусти сначала в ФФ, потом скажи что получилось, выявим где ошибка
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • monro

    Сообщения: 10 Репутация: N Группа: Кто попало

    Spritz 8 июля 2009 г. 11:19, спустя 3 минуты 30 секунд

    всеравно таже беда, даже не нажимаю на кнопку, а тупо жмакаю на textarea, и в textarea вылазит, слово которое должно при клике кнопки писатся
    Где вобще можна про все эти функции почитать самому?
  • rider-sx

    Сообщения: 2706 Репутация: N Группа: Адекваты

    Spritz 8 июля 2009 г. 11:26, спустя 6 минут 42 секунды

    дык епт привяжи событие не к тексариа а к кнопке ! id="#example" как то так вроде бы… на этот счет меня не слушай ;)
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 8 июля 2009 г. 11:28, спустя 2 минуты 9 секунд

    я юзаю

    var mouseY;

    function getCursor(input)
    {
    var result = { start: 0, end: 0 };
    if (input.setSelectionRange) {
    result.start= input.selectionStart;
    result.end = input.selectionEnd;
    }
    else if (!document.selection) { return 0; }
    else if (document.selection && document.selection.createRange) {
       var range = document.selection.createRange();
       var stored_range = range.duplicate();
       stored_range.moveToElementText(input);
       stored_range.setEndPoint('EndToEnd', range);
       result.start = stored_range.text.length - range.text.length;
       result.end = result.start + range.text.length; //}
    }
    return(result);
    }

    function setCursor(txtarea, start, end)
    {
    if(txtarea.createTextRange) {
           var range = txtarea.createTextRange();
           range.move("character", start);
           range.select();
       } else if(txtarea.selectionStart) {
           txtarea.setSelectionRange(start, end);
       }
    }
    function InsertTag(tag)
    {
    start_tag = '<' + tag + '>';
    end_tag = '</' + tag + '>';

    my_text = $('#text').get(0);

    my_text.focus();

    var scrtop = my_text.scrollTop;
    var cursorPos = getCursor(my_text);

    if (cursorPos.start==cursorPos.end) {
    var nuCursorPos=cursorPos.start+start_tag.length;
    my_text.value = my_text.value.substring(0,cursorPos.start) + start_tag + end_tag + my_text.value.substr(cursorPos.start);
    setCursor(my_text, nuCursorPos, nuCursorPos);
    }
    else {
    var txt_pre=my_text.value.substring (0,cursorPos.start);
    var txt_sel=my_text.value.substring(cursorPos.start, cursorPos.end);
    var txt_aft=my_text.value.substring(cursorPos.end);
    my_text.value = txt_pre + start_tag + txt_sel + end_tag + txt_aft;
    var nuCursorPos=String(txt_pre + start_tag + txt_sel + end_tag).length;
    setCursor(my_text, nuCursorPos, nuCursorPos);
    }
    if (scrtop) my_text.scrollTop=scrtop;
    }


    <a href="#" onclick="InsertTag('b');return(false);">B</a>
    все умрут, а я изумруд
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 8 июля 2009 г. 11:30, спустя 2 минуты 6 секунд

    http://forum.vingrad.ru/topic-55935/15.html#st_0_view_0
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • monro

    Сообщения: 10 Репутация: N Группа: Кто попало

    Spritz 8 июля 2009 г. 11:54, спустя 23 минуты 15 секунд

    отлично, спс большое

Пожалуйста, авторизуйтесь, чтобы написать комментарий!