Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Передача значения из textarea в input (https://javascript.ru/forum/events/44889-peredacha-znacheniya-iz-textarea-v-input.html)

TuxShot 05.02.2014 16:12

Передача значения из textarea в input
 
Здравствуйте.
Нужна вот такая реализация:
Пользователь пишет текст в textarea, в него пишется нормальный текст,
и есть input (будет скрытый).
В него нужно чтобы записывался событие клавиатуры, которое набрали в textarea.
Тобеж если в textarea набрали "абв", то в input должно быть: "70-188-68".
Для каждой буквы нужен код, а не сумма всех кодов, как делает скрипт ниже. (конечно если такая возможна реализация,хотелось чтобы все было через дефис).

Есть просто скрипт копирования:
<textarea oninput="document.getElementById('inputhide').value=event.keyCode;" onkeydown="document.getElementById('inputhide').value=event.keyCode;"></textarea> <br/>
<input type="hidden" id="inputhide" />


Также нашел обычную проверку нажатия клавиш (здесь в документации):
<input onkeydown="this.nextSibling.innerHTML = event.keyCode"><b></b>


А вот как все это в единое соединить не знаю!
Спасибо за помощь!

danik.js 05.02.2014 17:42

Цитата:

Сообщение от TuxShot
Тобеж если в textarea набрали "абв", то в input должно быть: "70-188-68".

А если текст вставили через copy/paste? То инпут должен быть пустой? А записываться должны только клавиши буков? А скажем Shift, Ctrl и тд?

kostyanet 06.02.2014 16:36

Цитата:

Сообщение от TuxShot
Тобеж если в textarea набрали "абв", то в input должно быть: "70-188-68".

Тобеж набрали f,d и в инпут запислось то же самое.

Cuntmann 07.02.2014 23:32

иногда так хочется вырвать себе глаза и топтать их, топтать... молотком

TuxShot 10.02.2014 15:24

Цитата:

Сообщение от danik.js (Сообщение 296101)
А если текст вставили через copy/paste? То инпут должен быть пустой? А записываться должны только клавиши буков? А скажем Shift, Ctrl и тд?

Насчет копи/пасте - это исключено. Во внимание это не берется.

Только ввод текста (букв). Ctrl, Alt и т.д. не интерисует.

P.S. Чтобы было понятно - делаю примитимный (де-)кодировщик текста
(JS-переводит из букв в символы, PHP-закодированный код JavaScript-ом возращает обратно пользователю).

TuxShot 10.02.2014 15:48

Нашел почти то, что мне и надо:
<script type="text/javascript">
function keypress(text)
{ //var n22 = n2.value;  

 str1 = "абвгде";
 str2 = "123456";
 for(i=0; i<str1.length; i++)
    {
  //  var reg = new RegExp("/"+str1.substr(i,1)+"/");
   // text = text.replace(reg, str2(i,1));
 // while (text.indexOf(str1[i])>=0)  
  text = text.replace(new RegExp(str1[i],"g"), str2[i]);
}
       
//n2.value = text;

//var coll = document.getElementsByTagName("input");
//for(var i=0; i<coll.length; i++) {
// if(coll[i].getAttribute("name") == "n2") {
   // coll[i].value = text;
// }
//}  

document.forms['www'].n2.value= text;
}
</script>

<form name="www">
<input name="n1" type="text" onKeyUp="keypress(this.value)" maxlength="20" size="20">  
<input name="n2" type="text" maxlength="20" readonly size="20">
</form>

Единственная проблема - кодируется все без разделения (тобеж нет дефиса между символами).
Сам не знаю как это можно реализовать. Помогите, если такое возможно реализовать!

kostyanet 16.02.2014 22:27

Цитата:

Сообщение от TuxShot
JS-переводит из букв в символы,

В клавиатуру?

Зная кодировку вы можете любой текст преобразовать не следя за нажатиями кнопок.


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