Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Копирование текста из одного input в другой (https://javascript.ru/forum/dom-window/28976-kopirovanie-teksta-iz-odnogo-input-v-drugojj.html)

Эдди 09.06.2012 16:08

Копирование текста из одного input в другой
 
Снова обращаюсь к спецам. Js использую изредка, потому особо не знаю.

Есть две формы.
При вводе текста в поле одной формы надо, чтобы заполнялось автоматом "параллельное" поле в другой форме. Желательно побуквенно. Хотя можно и по нажатию Submit, что не очень красиво.
Функция, думаю, будет на одну строку.

Не хочется изобретать велосипед. Не подскажете пэхапэшнику?:help:

Deff 09.06.2012 16:22

Эдди,
jQuery
<script type="text/javascript" src="http://yandex.st/jquery/1.4.4/jquery.min.js"></script>
 <input id=InpFrm1 type=text name=InpFrm2 autocomplete="off"/>
<input id=InpFrm2 type=text name=InpFrm2 autocomplete="off"/>
<script>
var a,L,epl=$("#InpFrm1");
function epl3(){a=epl.val();$("#InpFrm2").val(a)};epl3();
$("#InpFrm1").click(function (){setTimeout('epl3()',100)});
epl.bind('mouseout mousemove keydown keypress keyup',function(e){epl3()});
</script>

Эдди 09.06.2012 23:35

Спасибо!!!

devote 09.06.2012 23:39

Deff,
событие input забыл, из новой спецификации. специально для таких целей сделано. Проблема лишь в ИЕ но тем не менее.
<script type="text/javascript" src="http://yandex.st/jquery/1.4.4/jquery.min.js"></script>
 <input id=InpFrm1 type=text name=InpFrm2 autocomplete="off"/>
<input id=InpFrm2 type=text name=InpFrm2 autocomplete="off"/>
<script>
var a,L,epl=$("#InpFrm1");

function epl3(){
    a = epl.val();
    $("#InpFrm2").val(a)
};

epl3();

$("#InpFrm1").click(function(){
    setTimeout('epl3()',100)
});

epl.bind('input',function(e){
    epl3();
});
</script>
не работает в ишаке, но зато моментальное копирование

Deff 09.06.2012 23:58

devote,
Пасиб, про input - не нал,

Эдди 10.06.2012 22:12

Граничащий с этим вопрос - чтобы темы не плодить:

Вот здесь описано несколько событий:
"epl.bind('mouseout mousemove keydown keypress keyup',function(e){epl3()});"

А если я хочу прямо в теге импут задействовать несколько событий. Скажем эти же: mouseout mousemove keydown keypress keyup,
мне надо описывать каждое событие отдельно?

<input onmouseout("myfunction") onmousemove("myfunction") onkeydown("myfunction") keypress("myfunction") keyup("myfunction") ... ... ...

Или есть другой синтаксис?

Deff 10.06.2012 22:17

Цитата:

Сообщение от Эдди (Сообщение 180680)
Граничащий с этим вопрос - чтобы темы не плодить:

<input onmouseout=onmousemove=onkeydown=keypress=keyup="myfunction()" ... ... ...

Эдди 10.06.2012 22:26

Цитата:

Сообщение от Deff (Сообщение 180681)
<input onmouseout=onmousemove=onkeydown=keypress=keyup("m yfunction") ... ... ...

Начинаю любить JS!!:)

СПАСИБО!!!

Эдди 10.06.2012 22:29

Не работает:blink:

Deff 10.06.2012 22:33

Эдди,
ссылку на страницу дайте, даб шустрей
или выложите полный код вместе со скриптом обработки

Там ксать скобки кавычки не правильно стоят - поправил

Эдди 10.06.2012 22:38

Цитата:

Сообщение от Deff (Сообщение 180685)
Эдди,
ссылку на страницу дайте, даб шустрей
или выложите полный код вместе со скриптом обработки

Там ксать скобки кавычки не правильно стоят - поправил

<input id="1" name="lmi_payment_no" size="10" onkeyup=onkeypress="isNum('1')">


function isNum(id_name)
	{
		var x=document.getElementById(id_name).value;
		if(isNaN(x)) {
			alert("bla-bla-bla");
			document.getElementById(id_name).value='';

		}
	}


Когда пишу события отдельно, все работает.

devote 10.06.2012 22:59

Цитата:

Сообщение от Deff
<input onmouseout=onmousemove=onkeydown=keypress=keyup="m yfunction()" ... ... ...

интересная конструкция, любопытно в каком браузере работает? В ИЕ и в Опере не работает, тока что проверил. Хром чтоль такую бяку обрабатывает?

Эдди 10.06.2012 23:01

Цитата:

Сообщение от devote (Сообщение 180689)
интересная конструкция, любопытно в каком браузере работает? В ИЕ и в Опере не работает, тока что проверил. Хром чтоль такую бяку обрабатывает?

Никакой не обрабатывает.
Во это обрабатывает любой браузер:
<input id="1" title="Íîìåð ñ÷åòà - òîëüêî öèôðû" name="lmi_payment_no" size="10" onmouseout="isNum('1')" onmousemove="isNum('1')" onkeydown="isNum('1')" onkeyup="isNum('1')" onkeypress="isNum('1')">

devote 10.06.2012 23:03

Цитата:

Сообщение от Эдди
Во это обрабатывает любой браузер:

ну насчет этого я и не сомневался, это всегда и все обрабатывали, ибо атрибуты разные и разбиты, а там странный вариант, совершенно не валидный XML синтаксис, вот я и удивился что оно так работает где-то.

Эдди 10.06.2012 23:06

А вообще, зачем мне столько обработчиков.
Чтобы проверить число или нет, достаточно, наверное:
onkeyup и onblur. Или могут быть другие случаи?

Ставлю в input атрибут autocomplete="off" и вообще достаточно будет только onkeyup. Не?

Deff 10.06.2012 23:21

Цитата:

Сообщение от Эдди
А вообще, зачем мне столько обработчиков.

Эдди,
Часто - Вставка копированием
Цитата:

Сообщение от Эдди
А вообще, зачем мне столько обработчиков.

(*А - оно Вас смущает ? - собственно все события возникают только в связи с левым input - больше DOM не отвлекатся данным скриптом

Скрипт в данной конфе работал более года без нареканий

Для новых браузов есть единственное событие => input

Эдди 10.06.2012 23:30

Когда я пихаю в input несколько обработчиков, то и алертов выскакивает несколько. В частности в Мозилле и ИЭ.

Deff 10.06.2012 23:51

Эдди,
Если про скрипт - там нету навесок на input, А если это Ваш - код - то глюки отлавливать Вам... я своё уже оттестировал...:p

<input input="alert("A")" type=text>
Вот и весь обработчик для новых браузов

Bakstor 07.09.2015 13:30

Скажите, а как решить вопрос в первом посте, если "name" у полей разный?


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