Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Поле для тестового ввода с кнопкой input (https://javascript.ru/forum/misc/54616-pole-dlya-testovogo-vvoda-s-knopkojj-input.html)

mort_ 24.03.2015 21:18

Поле для тестового ввода с кнопкой input
 
Добрый вечер!

Подскажите, у меня есть ячейка с неким текстом...как создать поле для тестового ввода с кнопкой input, чтобы вводимый в него текст пристыковывался к ячейке с текстом?

Заранее спасибо.

demoniqus 25.03.2015 11:46

Задать ячейке некоторый идентификатор, через который ее можно опознать, например <td id="changed-cell">some text into cell</td>
и написать скрипт на операции изменения поля (нажатие клавиш клавиатуры, события onchange и onblur) типа:
var cell = document.getElementById('changed-cell');
if (!('_initText' in cell)) cell._initText = cell.innerHTML;
cell.innerHTML = cell._initText + input.value;

Есть один подводный камень: в любом тексте, хранящемся в параметрах innerHTML спецсимволы типа угловых скобок заменяются браузером на сущности автоматически. Что это значит?
Ты кладешь текст:
cell.innerHTML = 'Some text with <b>using tag</b>';

Что ты увидишь, если запросишь cell.innerHTML обратно?
'Some text with &lt;b&gt;using tag&lt;/b&gt;'

рони 25.03.2015 11:57

mort_,
http://javascript.ru/forum/misc/4559...tml#post302151

tsigel 25.03.2015 13:24

<table border=1>
  <tr>
     <td>1</td>
     <td contenteditable="true">Можно редактировать</td>
  </tr>
  <tr>
     <td>21</td>
     <td>2</td>
  </tr>
</table>

Все работает нативно в нормальных браузерах, наверно есть и полифилы.


Часовой пояс GMT +3, время: 07:11.