Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Генерация и удаление (https://javascript.ru/forum/dom-window/43011-generaciya-i-udalenie.html)

Diphenyl Oxalate 09.03.2017 19:33

рони, заинтриговали. Не знаю.

рони 09.03.2017 19:37

Diphenyl Oxalate,

Цитата:

Сообщение от KEMPZOR
как сделать кнопку закрыть только для второго и последующих

может это вам подскажет решение.

рони 09.03.2017 19:46

Diphenyl Oxalate,
следущая подсказка не только в скрипте ничего не менять, но и в body.

рони 09.03.2017 19:52

Diphenyl Oxalate,
Пример: решения
<!DOCTYPE HTML>
<html>

<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
    #ss, .del_variant{
      cursor: pointer;
    }
 *!*
   .control-group:nth-child(1)  .del_variant{
        display: none;
    }
*/!*
    </style>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script>
    $(document)
        .ready(function () {
            var variant = $('#uzz')
                .clone(true);
            $('#ss')
                .click(function () {
                    $(variant)
                        .clone(true)
                        .appendTo('#variants')
                        .fadeIn('slow')
                        .find("input[name*=name]")
                        .focus();
                });
            $(document)
                .on('click', 'a.del_variant', function () {
                    $(this)
                        .parents(".control-group")
                        .remove();
                });
        });
    </script>
</head>

<body>
    <div id="variants">
        <div class="control-group" id="uzz">
            <label class="control-label">Username</label>
            <div class="controls">
                <input type="text" placeholder="Username" name="name[]"> <a class="del_variant">X</a>
            </div>
        </div>
    </div><span id="ss">Добавить вариант</span>
</body>

</html>

KEMPZOR 11.03.2017 19:06

Цитата:

Сообщение от рони (Сообщение 446851)
Diphenyl Oxalate,
Пример: решения
<!DOCTYPE HTML>
<html>

<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
    #ss, .del_variant{
      cursor: pointer;
    }
 *!*
   .control-group:nth-child(1)  .del_variant{
        display: none;
    }
*/!*
    </style>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script>
    $(document)
        .ready(function () {
            var variant = $('#uzz')
                .clone(true);
            $('#ss')
                .click(function () {
                    $(variant)
                        .clone(true)
                        .appendTo('#variants')
                        .fadeIn('slow')
                        .find("input[name*=name]")
                        .focus();
                });
            $(document)
                .on('click', 'a.del_variant', function () {
                    $(this)
                        .parents(".control-group")
                        .remove();
                });
        });
    </script>
</head>

<body>
    <div id="variants">
        <div class="control-group" id="uzz">
            <label class="control-label">Username</label>
            <div class="controls">
                <input type="text" placeholder="Username" name="name[]"> <a class="del_variant">X</a>
            </div>
        </div>
    </div><span id="ss">Добавить вариант</span>
</body>

</html>

Точно, оказалось достаточно просто.
Подскажите ещё один момент, например у меня есть не 1 а 4 input. Первые три это текстовые строки, четвертая строка для числа. Как мне при вводе только в первый блок и нажатию добавить, добавляло информацию в последующий создаваемый блок ну и суммировало четвёртый ? Подскажите пожалуйста.

рони 11.03.2017 19:11

Цитата:

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

не осилил

KEMPZOR 11.03.2017 19:37

Цитата:

Сообщение от рони (Сообщение 447029)
не осилил

ок, давай с одним.

Вот есть
<input type="text" placeholder="Username" name="name[]">

нажимаю Добавить вариант, добавляется второй блок, третий и так далее. Задумка такая, в первый блок input вводишь число 3, далее (добавить вариант), создаётся блок с числом 3 в value, далее опять в первый блок input число 4, добавляется следующий блок с числом 4 в value. Ну и где нибудь рядышком
<p id="summa"></p>
, который выводит в сумме значения name="name[]".

рони 11.03.2017 19:49

KEMPZOR,
не понимаю, но посмотрите тут Динамическое создание поля ввода и кнопок Сохранить Удалить + Сумма строк с редактированием данных

KEMPZOR 11.03.2017 19:59

Цитата:

Сообщение от рони (Сообщение 447040)

Да Рони, именно такая задумка, спасибо за наводку.

KEMPZOR 13.03.2017 13:02

Цитата:

Сообщение от рони (Сообщение 447040)


Эх, что то не выходит то что задумал.

Вот по примеру сделал только вместо input подставил текст.

<div id="variants">
        <div class="control-group uzz">
            <label class="control-label">Username</label>
            <div class="controls">
            <p id="type_jaluzis1" class="clone_element"></p>
            <p id="type_vidshtor1" class="clone_element"></p>
            <p id="type_material_inf1" class="clone_element"></p>
            <p id="type_name_tkan1" class="clone_element"></p>
            <p id="type_shirina_visota1" class="clone_element"></p>
            <p id="type_itogo_inf1" class="clone_element"></p>
             <a class="del_variant">X</a>
            </div>
        </div>
    </div>
    <input type="button" id="test_button_text" name="btnz" value="Добавить"/>


Есть скрытые инпуты, в которых храниться меняющаяся информация.
<input id="type_jaluzis" name="from_form_inf" type="hidden" value="Информация1" />
            <input id="type_vidshtor" name="from_form_inf" type="hidden" value="Информация2" />
            <input id="type_material_inf" name="from_form_inf" type="hidden" value="Информация3" />
            <input id="type_name_tkan" name="from_form_inf" type="hidden" value="Информация4" />
            <input id="type_shirina_visota" name="from_form_inf" type="hidden" value="Информация5" />
            <input id="type_itogo_inf" name="from_form_inf" type="hidden" value="Информация6" />


Этот код клонирования элемента по нажатию на кнопку "Добавить".
$(document)
        .ready(function () {
            var variant = $('.uzz')
                .clone(true);
            $('#test_button_text')
                .click(function () {
                    $(variant)
                        .clone(true)
                        .appendTo('#variants')
                        .fadeIn('slow')
                        .find(".clone_element")
                        .focus();
                });
            $(document)
                .on('click', 'a.del_variant', function () {
                    $(this)
                        .parents(".control-group")
                        .remove();
                });
        });



Этот код по нажатию на кнопку
#test_button_text
задает переменные, которые потом выводятся в своём
<p id=""></p>

$(document).ready(function(){
        $("#test_button_text").on("click" ,function(){
            var divjal = $("#type_jaluzis").val();
            var divvid =$("#type_vidshtor").val();
            var divmat =$("#type_material_inf").val();
            var divname =$("#type_name_tkan").val();
            var divshirvis =$("#type_shirina_visota").val();
            var divitogo =$("#type_itogo_inf").val();
            $("#type_jaluzis1").html(divjal);
            $("#type_vidshtor1").html(divvid);
            $("#type_material_inf1").html(divmat);
            $("#type_name_tkan1").html(divname);
            $("#type_shirina_visota1").html(divshirvis);
            $("#type_itogo_inf1").html(divitogo);

        });
    })

Не получается эти два кода объеденить, чтобы по нажатию на кнопку
#test_button_text
создавало новый объект и присваивало этому объекту текущие значения input hidden value на момент клика.

Есть какие размышления ?

Я так понимаю что нужно не клонировать элементы, а создать их средствами скрипта. ?


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