Форма не отправляет поле ввода при использовании повторителя jquery - PullRequest
0 голосов
/ 03 ноября 2019

Я использую https://github.com/DubFriend/jquery.repeater (повторитель jquery) для клонирования поля формы. Он успешно клонирует поле, однако при отправке формы поле не отправляется.

Итак, я обнаружил, что поле ввода вне поля data-repeater-item отправляется.


    <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.repeater/1.2.1/jquery.repeater.min.js"></script>

    <?php 
            if ($_SERVER["REQUEST_METHOD"] == "POST") {
                print_r($_POST);
            }
    ?>

    <h2>Repeater</h2>
    <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" class="repeater" method="POST" enctype="multipart/form-data">
        <input type="text" name="full_name">
      <div data-repeater-list>
        <div data-repeater-item>

          <input type="text" name="text-input" value="A"/>

          <select name="select-input">
            <option value="A" selected>A</option>
            <option value="B">B</option>
          </select>


          <input data-repeater-delete type="button" value="Delete"/>
        </div>
      </div>
      <input data-repeater-create type="button" value="Add"/>
      <button type="submit">Submit</button>
    </form>




    <script>
    $(document).ready(function () {
        'use strict';

        $('.repeater').repeater({
                show: function () {
                    $(this).slideDown();
                },
                hide: function (deleteElement) {
                    if(confirm('Are you sure you want to delete this element?')) {
                    $(this).slideUp(deleteElement);
                    }
                }
        });
    });
    </script>

1 Ответ

0 голосов
/ 03 ноября 2019

На самом деле вам нужно передать значение для data-repeater-list. Как

<div data-repeater-list="group-a"> //this will be the name for these repeated fields

После этого ваши представленные данные будут выглядеть так:

Array
(
    [full_name] => John Doe
    [group-a] => Array
        (
            [0] => Array
                (
                    [text-input] => A
                    [select-input] => A
                )

        )

)
...