Вопрос по jQuery

Статус
В этой теме нельзя размещать новые ответы.

1Dreamweaver1

Профессор
Регистрация
4 Янв 2008
Сообщения
417
Реакции
45
Есть форма. При нажатии кнопки Add добовляется одно поле input.

Можно сделать так, что бы при одном клике на кнопку Add добовлялись сразу 2 поля input.

При втором клике на кнопку Add добовлялись опять сразу 2 поля input.
А при третьем клике на кнопку Add вылазил error s текстом.


HTML:
<script type="text/javascript">
function addFormField() {
	var id = document.getElementById("id").value;
	$("#divTxt").append("<p id='row" + id + "'><label for='txt" + id + "'>Field " + id + "&nbsp;&nbsp;<input type='text' size='20' name='txt[]' id='txt" + id + "'>&nbsp;&nbsp<a href='#' onClick='removeFormField(\"#row" + id + "\"); return false;'>Remove</a><p>");
	
	
	$('#row' + id).highlightFade({
		speed:1000
	});
	
	id = (id - 1) + 2;
	document.getElementById("id").value = id;
}

function removeFormField(id) {
	$(id).remove();
}
</script>
<body>
<p><a href="#" onClick="addFormField(); return false;">Add</a></p>
<form action="#" method="get" id="form1">
<input type="hidden" id="id" value="1">
<div id="divTxt"></div>
<p><input type="submit" value="Submit" name="submit">
<input type="reset" value="Reset" name="reset"></p>
</form>
 
  • Заблокирован
  • #2
пставь глобальную переменную с нулем по дефолту, да увелицивай ее на один при каждом вызове функции.. при достижении двух - блокируй вызов..


зы.. разве id = (id - 1) + 2; не тоже что id = id +1; или ++id ?..
 
вот переделанная функция
HTML:
var check_click=0;  // кол-во кликов

function addFormField() {
	
	if(check_click==2){ // больше не добавляем
		alert('error');
		return false;
	}	
		
		
	var id = document.getElementById("id").value;
	
	id=Number(id);
	
	for(i=0;i<2;i++){ // добавляем 3 поля
		$("#divTxt").append("<p id='row" + id + "'><label for='txt" + id + "'>Field " + id + "&nbsp;&nbsp;<input type='text' size='20' name='txt[]' id='txt" + id + "'>&nbsp;&nbsp<a href='#' onClick='removeFormField(\"#row" + id + "\"); return false;'>Remove</a><p>");
		
		
		$('#row' + id).highlightFade({
			speed:1000
		});
		
		id +=1;
		document.getElementById("id").value = id;
	}
	check_click++;
}

а
HTML:
id = id +1;
не работало т.к. id был строкой
а его надо сделать числом
HTML:
id=Number(id);
 
Спасибо.
При нажатии "Add" добавляет поля таки мобразом
Field 1
Field 2
Field 3
Field 4
Мжно ли сделать, что бы при нажатии "Add" поля добавлялись так:
First Name 3:
Last Name 3:
First Name 4:
Last Name 4:
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху