Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вопрос Данные из одного поля в другое (https://javascript.ru/forum/misc/49880-vopros-dannye-iz-odnogo-polya-v-drugoe.html)

qwe88 01.09.2014 22:04

Вопрос Данные из одного поля в другое
 
Добрый день!
Есть 2 поля:
<input type="text" name="imya" value="" />
<input type="text" name="soobch" value="!данное из первого поля! , приветствуем вас" />
Подскажите, пожалуйста, как сделать так, что бы значение поля imya оказалось в поле soobch ?

Pavel M. 01.09.2014 22:32

если быстро, некрасиво и некроссбраузерно, то можно так
<input type="text" name="imya" value="" oninput="this.nextElementSibling.value=this.nextElementSibling.value.replace(/^.*,/, this.value + ',')">
<input type="text" name="soobch" value="!данное из первого поля! , приветствуем вас" />

petya 02.09.2014 04:07

Pavel M, а вот так не проще?

<input oninput="this.nextElementSibling.value=this.value+ ', you are fucking motherfucker!'" />
<input />

kostyanet 02.09.2014 11:22

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

Смысл в том что если поле с именем, значит оно уйдет на сервер. А зачем там это soobch вообще?

Ну вот, поэтому если без имени для второго поля, если уж так надо именно input, то заделайте ему id в точности как name у того, первого.

<input type="text" name="imya" value="" onchange="{document.getElementById(this.name).value=this.value+' превед!'}" />
<input type="text" id="imya" value="" />


Ну а если правильно, то вместо input втыкается любой там <p>

qwe88 02.09.2014 11:51

Pavel M.,
Спасибо вам огромное! То что нужно было

qwe88 02.09.2014 13:27

Подскажите, пожалуйста, как сделать сложнее:
Статичный текст !имя! статичный текст !имя2! статичный текст ?

tsigel 02.09.2014 13:32

<input type="text" style="width: 500px">
  <script>
  var template = function (name1, name2) {
     return "trololololol " + name1 + " dsafdfdsgfds " + name2 + " fdsafdsa";
  }

  document.querySelector("input").value = template("Вася", "Маша");
  </script>

Пример с использованием дива, но я думаю понятно, что не важно куда класть полученную строку.

qwe88 02.09.2014 13:49

Что-то не понял, как задать Васи и Маше input (что бы человек вводил машу и васю)

qwe88 02.09.2014 13:54

В смысле в первом инпуте человек ввел одно имя
Во втором инпуте ввел другое имя
А в третьем инпуте было уже так: статичный текст !имя 1! статичный текст !имя 2! статичный текст

tsigel 02.09.2014 13:55

<input type="text" class="name1" style="width: 500px">
<input type="text" class="name2" style="width: 500px">
<div></div>
  <script>
  var template = function (name1, name2) {
     return "trololololol " + name1 + " dsafdfdsgfds " + name2 + " fdsafdsa";
  }

   var inputs = document.querySelectorAll("input");
   var change = function () {
      document.querySelector("div").innerHTML = template(inputs[0].value, inputs[1].value);
   }
   inputs[0].addEventListener("change", change, true);
   inputs[1].addEventListener("change", change, true);
  </script>


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