Вопрос по jQuery

Тема в разделе "Другие языки", создана пользователем 1Dreamweaver1, 24 янв 2009.

Статус темы:
Закрыта.
Модераторы: Цукер
  1. 1Dreamweaver1

    1Dreamweaver1

    Регистр.:
    5 янв 2008
    Сообщения:
    417
    Симпатии:
    44
    Есть форма. При нажатии кнопки 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. BDS

    BDS Читатель

    Заблокирован
    Регистр.:
    7 янв 2009
    Сообщения:
    42
    Симпатии:
    2
    пставь глобальную переменную с нулем по дефолту, да увелицивай ее на один при каждом вызове функции.. при достижении двух - блокируй вызов..


    зы.. разве id = (id - 1) + 2; не тоже что id = id +1; или ++id ?..
     
  3. 1Dreamweaver1

    1Dreamweaver1

    Регистр.:
    5 янв 2008
    Сообщения:
    417
    Симпатии:
    44
    при
    при первом нажатии на Add, добавляется одно поле Field 1 , при втором Field 2...

    при
    при первом нажатии на Add, добавляется одно поле Field 1 , при втором Field 11...
     
  4. serg_g

    serg_g Создатель

    Регистр.:
    31 окт 2008
    Сообщения:
    35
    Симпатии:
    9
    вот переделанная функция
    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);
     
    1Dreamweaver1 нравится это.
  5. 1Dreamweaver1

    1Dreamweaver1

    Регистр.:
    5 янв 2008
    Сообщения:
    417
    Симпатии:
    44
    Спасибо.
    При нажатии "Add" добавляет поля таки мобразом
    Field 1
    Field 2
    Field 3
    Field 4
    Мжно ли сделать, что бы при нажатии "Add" поля добавлялись так:
    First Name 3:
    Last Name 3:
    First Name 4:
    Last Name 4:
     
Статус темы:
Закрыта.