Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Из input в input (https://javascript.ru/forum/misc/29861-iz-input-v-input.html)

YND 14.07.2012 11:52

Из input в input
 
В JavaScripte я 1 из 10 :D
Есть программа, выглядит так:
В верхние поля пользователь вводит текст, потом нажимает GO GO GO и в нижнее поле выводится текст.
Скачать можно тут, если не поняли: http://ynd-blog.ru/3dmax/23-3d-max-on-orion.html
Надо сделать тоже самое, только на странице браузера..
Можно и на php, но на js думаю меньше мороки..
Короче, что не получается:
Не могу сделать так, чтобы текст брался из 1 input и потом вставлялся во 2й. Ну как не могу.. Я сделал, вроде бы вставляется, но после этого страница сразу перезагружается..
Вот мой код:
<script language="javascript"> 
function Filled() { 
nan=document.getElementById('name').value;
document.getElementById('fin').value = nan;
}
</script> 
<form name="Form1" onsubmit="return Filled()"> 
<input type=text id=name>
<br><input class=frm3 type=submit value=GO>   
<input type=text id=fin>
</form>

Помогите :D

Deff 14.07.2012 12:09

<script language="javascript"> 
function Filled() { 
nan=document.getElementById('name').value;
document.getElementById('fin').value = nan;
return false;
}
</script>

YND 14.07.2012 12:12

Цитата:

Сообщение от Deff (Сообщение 188734)
<script language="javascript"> 
function Filled() { 
nan=document.getElementById('name').value;
document.getElementById('fin').value = nan;
return false;
}
</script>

Спасибо, попробую ваш вариант.

Dorian_bs 14.07.2012 12:43

Filled = function () {
   var n = $('#name').val();
   $('#fin').val(n);
}

YND 14.07.2012 13:40

Цитата:

Сообщение от Dorian_bs (Сообщение 188742)
Filled = function () {
   var n = $('#name').val();
   $('#fin').val(n);
}

Спасибо, но если существенной разницы нету то я буду использовать предыдущий вариант, так как этот я не очень понимаю да и пол работы уже сделано..

Deff 14.07.2012 13:43

Цитата:

Сообщение от YND
Спасибо, но если существенной разницы нету

Данный Вариант от Dorian_bs,
ничем не отличается от Вашего - ток сделан на JQ, с тем же траблом переотправки

YND 14.07.2012 13:51

Ясно, спасибо))

lord2kim 14.07.2012 14:16

если повесить данную функцию на обычную кнопку, а не на submit, то и никакого return false; не потребуется))

Deff 14.07.2012 14:27

lord2kim,
Ды -возможно и форма нужна ток для событий ... хотя фиг иго зает - полного кода нет

lord2kim 14.07.2012 14:31

Цитата:

Сообщение от Deff (Сообщение 188767)
lord2kim,
Ды -возможно и форма нужна ток для событий ... хотя фиг иго зает - полного кода нет

мб))

YND 14.07.2012 14:43

Чистый html :P

YND 14.07.2012 15:03

Опять почему-то обновляет страницу..
Что ж, буду делать ссылкой..

Deff 14.07.2012 15:04

YND,
Кнопка должна быть вне формы или иметь <button type="button">

YND 14.07.2012 15:09

Deff, Тогда на что заменить
<form name="Form1" onsubmit="return Filled()">

?

lord2kim 14.07.2012 15:13

Цитата:

Сообщение от YND (Сообщение 188785)
Deff, Тогда на что заменить
<form name="Form1" onsubmit="return Filled()">

?

если кнопка типа <input type="button">, то вам и <form> не нужен...
достаточно повесить функцию на обработчик кнопки onClick

YND 14.07.2012 15:22

Все, работает уже, спасибо )) Забыл +'ики поставить :DD
Что то не хочет..
<html>
<head>
<script language="javascript"> 
function OrioN() { 
//servak
for(i=0; i < servak.length; i++){
  if (servak[i].checked == true){
    var finish = 'Сервер: ' + servak[i].value + '\n';
  }
}
//tekst
finish=finish + 'Текст: ' + document.getElementById('tekst').value '\n';
//idped
finish=finish + 'ID педа: ' + document.getElementById('idped').value '\n';
//pozh
finish=finish + 'Пожелания: ' + document.getElementById('pozh').value '\n';
//nik
finish=finish + 'Ник: ' + document.getElementById('nik').value '\n';
//other

document.getElementById('finishd').value = finish;
}
</script> 
</head>
<body>
<table><tr>
<td>
<!--- Server str --->
	<fieldset>
		<legend>Сервер:</legend>
			<input type="radio" name="servak" id="servak" value="ON-1"> ON-1<Br>
			<input type="radio" name="servak" id="servak" value="ON-2"> ON-2<Br>
	</fieldset>
<!--- Server end --->
<!---tekst str--->
	<fieldset>
		<legend>Текст:</legend>
			<input type="text" name="tekst" id="tekst">
	</fieldset>
<!---tekst end--->
<!---ped str--->
	<fieldset>
		<legend>ID педа:</legend>
			<input type="number" min="0" max="299" name="idped" id="idped">
	</fieldset>
<!---ped end--->
<!---pozh str--->
	<fieldset>
		<legend>Пожелания:</legend>
			<input type="text" name="pozh" id="pozh">
	</fieldset>
<!---pozh end--->
</td><td>
<!---nik str--->
	<fieldset>
		<legend>Ник:</legend>
			<input type="text" name="nik" id="nik">
	</fieldset>
<!---nik end--->

</td></tr></table>
<input onClick="OrioN()" type=button value=GO>   
<textarea type=text id=finishd></textarea>
</body>
</html>

Deff 14.07.2012 15:25

YND,
Дык Вы же все таки в итоге хотите данные отправить на сервер ? - тогда изъятие формы некорректно

YND 14.07.2012 15:27

Deff,
Нет.. Это не требуется ))

lord2kim 14.07.2012 15:29

YND, к тому же на странице 2 элемента с одинаковыми идентификаторами id, чего быть не должно...

YND 14.07.2012 15:30

lord2kim,
Спасибо, не заметил..
<input type="radio" name="servak" id="servak" value="ON-1">

На что его тогда изменить..
Они ж идентифицируются по ид..

lord2kim 14.07.2012 15:34

Цитата:

Сообщение от YND (Сообщение 188798)
lord2kim,
Спасибо, не заметил..
<input type="radio" name="servak" id="servak" value="ON-1">

На что его тогда изменить..
Они ж идентифицируются по ид..

в функции OrioN() у вас происходит "идентификация" по name
и type="number" в IE и вроде в Safari не робит...

YND 14.07.2012 15:41

lord2kim,
Разве ? :DD Я думал по id, раз "document.getElementById" ))
Спасибо ))
На счет number, в IE будет отображаться обычный тип text, разница не велика ))

lord2kim 14.07.2012 15:43

Цитата:

Сообщение от YND (Сообщение 188803)
lord2kim,
Разве ? :DD Я думал по id, раз "document.getElementById" ))
Спасибо ))

к servak вы не с помощью getElementById() обращаетесь))

YND 14.07.2012 15:49

lord2kim,
Ааа :D Тогда ясно, спасибо ))

YND 14.07.2012 15:52

Неа.. Заменил на servak1 & servak2 - не работает ничего.. Изменил обратно на id="servak" - работает..
Если 1 оставить servak, a 2 servak1, то в ответ "undefined"..

lord2kim 14.07.2012 15:56

Цитата:

Сообщение от YND (Сообщение 188807)
Неа.. Заменил на servak1 & servak2 - не работает ничего.. Изменил обратно на id="servak" - работает..
Если 1 оставить servak, a 2 servak1, то в ответ "undefined"..

в каком браузере?:blink: в IE8 и FF 13.0.1 это не пашет...
getElementById() возвращает один единственный элемент с соответствующим идентификаоторм
а getElementsByName() вернет массив элементов с соответствующим атрибутом name

YND 14.07.2012 15:58

"Chrome 20" (o0 ого..)..
IE - работает :D

lord2kim 14.07.2012 16:01

Цитата:

Сообщение от YND (Сообщение 188810)
"Chrome 20" (o0 ого..)..
IE - работает :D

IE какой?

YND 14.07.2012 16:01

IE 9.0.8

lord2kim 14.07.2012 16:03

Цитата:

Сообщение от YND (Сообщение 188813)
IE 9.0.8

ну вот...но это в любом случае не кроссбраузерно...

YND 14.07.2012 16:09

lord2kim,
Ну так а что мне делать ?))
IE - работает
Chrome - нет ><
Обратно ставить 2 id одинаковых ??

lord2kim 14.07.2012 16:11

Цитата:

Сообщение от YND (Сообщение 188817)
lord2kim,
Ну так а что мне делать ?))
IE - работает
Chrome - нет ><
Обратно ставить 2 id одинаковых ??

не знаю в каких браузерах это будет использоваться, но кроссбраузерно будет так
var servak = document.getElementsByName("servak");
for(i=0; i < servak.length; i++){
  if (servak[i].checked){
    var finish = 'Сервер: ' + servak[i].value + '\n';
  }
}

YND 14.07.2012 16:14

Спасибо, теперь работает :D

YND 15.07.2012 18:30

Спасибо всем за помощь, а особенно lord2kim'y.
Вот что получилось: http://ynd-blog.ru/3d-max-on-orion.html
Позже сделаю проверку на "пустые поля"..
Небольшой вопрос: как выровнять "fieldset" ?? Чтобы высота была одинаковой. "height" не работает.. С CSS пока не пробовал..

Deff 15.07.2012 18:46

<html>
<head>

<style type="text/css">
table fieldset{
 width:190px;
 border:1px re solid;
 height:43px;
 padding-bottom:5px;
}
#Nick {
 float:right;
}
</style>
</head>
<body>
<table><tr>
<td>
<!--- Server str --->
	<fieldset>
		<legend>Сервер:</legend>
			<input type="radio" name="servak" id="servak" value="ON-1"> ON-1<Br>
			<input type="radio" name="servak" id="servak" value="ON-2"> ON-2<Br>
	</fieldset>
<!--- Server end --->
<!---nik str--->
	<fieldset id=Nick>
		<legend>Ник:</legend>
			<input type="text" name="nik" id="nik">
	</fieldset>
<!---nik end--->
<!---tekst str--->
	<fieldset>
		<legend>Текст:</legend>
			<input type="text" name="tekst" id="tekst">
	</fieldset>
<!---tekst end--->


<!---ped str--->
	<fieldset>
		<legend>ID педа:</legend>
			<input type="number" min="0" max="299" name="idped" id="idped">
	</fieldset>
<!---ped end--->
<!---pozh str--->
	<fieldset>
		<legend>Пожелания:</legend>
			<input type="text" name="pozh" id="pozh">
	</fieldset>
<!---pozh end--->
</td>

<td>


</td></tr></table>
<input onClick="OrioN()" type=button value=GO>   
<textarea type=text id=finishd></textarea>
</body>
</html>

YND 15.07.2012 18:47

Спасибо, позже попробую ))

YND 15.07.2012 18:56

Немного подзабыл.. CSS только в head можно вставлять или и в body тоже ??

Deff 15.07.2012 19:02

YND,
Лучше в head ( так скажем - правильнее - но мон вставлять и в контент страницы

YND 15.07.2012 19:05

Спасибо, просто у меня DLE и если вставить в css файл, который подключен к head, то "table fieldset{" будет на всех страницах работать.. Придется "класс" создавать..

Deff 15.07.2012 19:06

YND,
Та мон прям перед формой воткнуть(не АЙС но вродь валидатор не ругается .. хотя смотря какой валидатор


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