Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как добавить еще поле? (https://javascript.ru/forum/misc/4917-kak-dobavit-eshhe-pole.html)

Jony X 30.08.2009 12:27

У меня такая проблема: необходимо создать форму с переменным количеством полей, чтоб по нажатию на кнопку "Добавить еще поле", появлялось новое

ЗЫ: Если необходимо будет использовать доп. библиотеку, то желательно jQuery

Gvozd 30.08.2009 12:39

Вы просите готовый скрипт с нуля.

Это работа, и за нее обычно платят деньги.
Для таких сообщений предназначен раздел форума "Работа".

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

В разработке вам помогут статьи:
http://javascript.ru/tutorial/dom

Jony X 30.08.2009 12:59

Вообще-то, я не думаю, что это так сложно, что стоит за это требовать оплаты!
Да и готовый скрипт мне вовсе не нужен!

Попробую тогда по другому:

Я пробовал написать фукцию и вставить её в тело jQuery

jQuery.fn.extend({
	addfeilds:function(){
		var n;
		var i;
		var substringhtml;
		substringhtml=''
		n = $(this).val();
		for (i=1; i < n; i++)
		{
			substringhtml+='<tr><td>Введите '+i+' вариант<input type="text" name="value'+i+'" id="value'+i+'" value="" size="15"></td></tr>';
		}
		$("table.input").html(substringhtml).fadeIn("slow");
	}
});

а потом в необходимом месте на странице:

<script language="javascript">
$(document).ready(function()
{
	$("#val").blur(function(){
		$("#val").addfeilds();
	});
}
</script>
Введите количество вариантов
<input type="text" name="val" id="val" value="" size="2" maxlength="2">
<table class="nput">
</table>

Какие очевидные ошибки я допустил?
И правильно ли я использую здесь функцию html()? Може надо использовать что-то другое?

JSprog 31.08.2009 06:45

<html>
<body>
<form>
<div id=divf>
<input type=text>
</div>
<input type=button onclick=plus()>
</form>
<script>
function plus(){
document.getElementById('divf').innerHTML+='<br><input type=text>'
}
</script>
</body>
</html>

Так чтоле?

Jony X 31.08.2009 09:21

ну примерно тот эффект, только имена им разные еще присвоить надо бы

JSprog 31.08.2009 09:27

счяс сделаю

JSprog 31.08.2009 09:42

<html>
<body>
<form>
<div id=divf>
<input type=text>
</div>
<input type=button onclick=plus()>
</form>
<script>
var n=0
function plus(){
document.getElementById('divf').innerHTML+='<br><input type=text id="id'+n+'" name="name'+n+'">'
n++
}
</script>
</body>
</html>

Jony X 31.08.2009 11:28

Спасибо, выручили, работает функция, как часы:)

JSprog 31.08.2009 12:21

Да незачто если с этой функцией будут проблемы обращайтесь=)

Bastonsv 06.07.2018 23:20

Цитата:

Сообщение от JSprog (Сообщение 28907)
Да незачто если с этой функцией будут проблемы обращайтесь=)

Здравствуйте. Извините, что поднимаю древнюю тему. Но не могли бы Вы подсказать, как в Вашем скрипте сделать так, что бы после заполнения поля и нажатии на кнопку добавления поля - уже введенные данные в предыдущий input не терялись?


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