Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.11.2017, 12:21
Интересующийся
Отправить личное сообщение для skitskis Посмотреть профиль Найти все сообщения от skitskis
 
Регистрация: 07.11.2017
Сообщений: 21

Добавление и удаление input
Добрый день!
Работаю с php и к сожалению не владею знаниями программирования на jquery.
Задача состоит в том что надо добавлять и удалять блоки с input и считать их количество, добавление проходит нормально, подсчет идет верный, но вот при удалении считает неверно.
Например, добавил 5 блоков, он посчитал их верно, показал цифру 5, нажал удалить один, стало 4 но цифру все ровно показывает 5, удалил еще один, стало 3, цифру показывает 5.

Html:
<!--------- Строка начало --------->
        <div class="field">
            <div class="col_left">
                <div class="border">
                    <input type="text" name="tag_1" value="" placeholder="TEG" />
                </div>
            </div>
            <div class="col_centr">
                <div class="border">
                    <input type="text" name="tag_name_1" value="" placeholder="Название поля" />
                </div>
            </div>
            <div class="col_right">
                <div class="border">
                    <select type="radio" name="tag_template_1">
                        <option value="0">Текстовое</option>
                        <option value="1">Числовое с переводом числа в текст</option>
                        <option value="2">Срок исполнения</option>
                    </select>
                </div>
            </div>
            <div class="clear"></div>
        </div>
        <!--------- Строка конец --------->
        <div class="inputs">
    
        </div>
        <input id="last_numer" name="" value="1">


Script:
<script>

    
$(document).ready(function(){


	var i = 2;
	
	$('#add').click(function() {
            $('\n\
    \n\
<!--------- Строка начало --------->\n\
        <div class="field">\n\
            <div class="col_left">\n\
                <div class="border">\n\
                    <input type="text" name="tag_' + i + '" value="" placeholder="TEG" />\n\
                </div>\n\
            </div>\n\
            <div class="col_centr">\n\
                <div class="border">\n\
                    <input type="text" name="tag_name_' + i + '" value="" placeholder="Название поля" />\n\
                </div>\n\
            </div>\n\
            <div class="col_right">\n\
                <div class="border">\n\
                    <select type="radio" name="tag_template_' + i + '">\n\
                        <option value="0">Текстовое</option>\n\
                        <option value="1">Числовое с переводом числа в текст</option>\n\
                        <option value="2">Срок исполнения</option>\n\
                    </select>\n\
                </div>\n\
            </div>\n\
            <div class="clear"></div>\n\
        </div>\n\
        <!--------- Строка конец --------->\n\
\n\
').fadeIn('slow').appendTo('.inputs');
                document.getElementById('last_numer').value = i;
		i++;
	});
	
	$('#remove').click(function() {
            $('.field:last').remove();
            i--;
            document.getElementById('last_numer').value = i;
            
	});
	

// here's our click function for when the forms submitted
	
	$('.submit').click(function(){
								
	
	var answers = [];
    $.each($('.field'), function() {
        answers.push($(this).val()); 
    });
	
    if(answers.length == 0) { 
        answers = "none"; 
    }   

	alert(answers);
	
	return false;
								
	});

    

});

</script>
Ответить с цитированием
  #2 (permalink)  
Старый 07.11.2017, 12:27
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

skitskis,
нужно добавлять клонированный <div class="field"> со всем его содержимым. И именование полей мягко сказать не очень. Это затем отправляется на сервер ведь?

Вставлять в html код \n бессмысленно.
Ответить с цитированием
  #3 (permalink)  
Старый 07.11.2017, 12:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

skitskis,
где кнопки добавить и удалить?
Ответить с цитированием
  #4 (permalink)  
Старый 07.11.2017, 12:30
Интересующийся
Отправить личное сообщение для skitskis Посмотреть профиль Найти все сообщения от skitskis
 
Регистрация: 07.11.2017
Сообщений: 21

Сообщение от рони Посмотреть сообщение
skitskis,
где кнопки добавить и удалить?
ой, да.
<!--------- Строка начало --------->
        <div class="form_group">
            <div class="col_left">
            <a href="#" id="add">Добавить</a> | <a href="#" id="remove">Удалить</a> 
            <div class="clear"></div>
        </div>
        <!--------- Строка конец --------->
Ответить с цитированием
  #5 (permalink)  
Старый 07.11.2017, 12:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

skitskis,
строки 38 и 39 поменять местами и строка 7 var i = 1;
Ответить с цитированием
  #6 (permalink)  
Старый 07.11.2017, 12:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от skitskis
ой, да.
тогда ещё в оба клика добавить .click(function(event) {
event.preventDefault();
Ответить с цитированием
  #7 (permalink)  
Старый 07.11.2017, 12:36
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

рони,
не надо ничего менять, это нужно выбрасывать, так как и для именования полей это вредно, и для подсчета не нужно, достаточно посчитать элементы ".field", если надо.
Ответить с цитированием
  #8 (permalink)  
Старый 07.11.2017, 12:37
Интересующийся
Отправить личное сообщение для skitskis Посмотреть профиль Найти все сообщения от skitskis
 
Регистрация: 07.11.2017
Сообщений: 21

Сообщение от laimas Посмотреть сообщение
skitskis,
нужно добавлять клонированный <div class="field"> со всем его содержимым. И именование полей мягко сказать не очень. Это затем отправляется на сервер ведь?

Вставлять в html код \n бессмысленно.

так у меня и добавляется <div class="field"> и все содержимое, или я что то не понял. Да, потом отправляю на сервер.
Ответить с цитированием
  #9 (permalink)  
Старый 07.11.2017, 12:42
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от skitskis
так у меня и добавляется <div class="field"> и все содержимое, или я что то не понял.
Не надо ничего добавляемого описывать:

$('div.field').first().clone()....


То есть взять первый набор (который нельзя удалить, нет у него кнопок, а еще лучше невидимы, они тоже клонируются), очищаются его поля и сбрасывается список. Имена полей при этом никакой нумерации не имеют, это как раз будет геморрой для РНР, вот так надо:

tag[], tag_nam[], ....

И получите массив в $_POST.
Ответить с цитированием
  #10 (permalink)  
Старый 07.11.2017, 12:43
Интересующийся
Отправить личное сообщение для skitskis Посмотреть профиль Найти все сообщения от skitskis
 
Регистрация: 07.11.2017
Сообщений: 21

Сообщение от laimas Посмотреть сообщение
рони,
не надо ничего менять, это нужно выбрасывать, так как и для именования полей это вредно, и для подсчета не нужно, достаточно посчитать элементы ".field", если надо.
да, можно и посчитать элементы ".field", мне просто нужно понимать количество полей, я потом буду пробегать циклом for. Но как мне вытащить это значение? просто скрип я не писал, я его кусками собрал из интернета...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление значение в поле input file – в коллекции files все равно содержится файл. artur567 Events/DOM/Window 1 08.05.2016 18:00
Добавление новых INPUT по нажатию ENTER paveltkachev jQuery 10 24.12.2014 11:35
удаление input psfdek Элементы интерфейса 1 05.06.2014 10:29
При добавлении DOCTYPE "плывут" размеры input type=text Demath (X)HTML/CSS 4 08.07.2012 19:27
Добавление текста к input элементу Cepin Элементы интерфейса 4 05.05.2010 09:10