Сохранять чекбоксы, выбранные при открытии модального бутстрапа - PullRequest
0 голосов
/ 07 июня 2019

Мне нужно оставить флажки ввода, когда я открываю модальное. Но я не знаю:

У меня есть список флажков о пользователях. Когда я выбираю и нажимаю кнопку, чтобы открыть модальный, мне нужно сохранить этот выбор, чтобы отправить электронное письмо, но каждый флажок не установлен в модальном.

HTML:

  <div>
    <h4>LIST USERS</h4>
       @foreach ($agent as $agent)
          <ul class="user-select">
             <li>
                 <h5>{{ $agent->name }}</h5>
                 <input type="checkbox" name="agents[]"/>
             </li>
          </ul>
       @endforeach

      <p>
         <a href="#" class="button register-interest">Register interest</a 
      </p>
   </div>

MODAL:

<div class="register-modal">
    <div class="modal-box">
        <div class="header">
            <h3 class="text-black">Register your interest</h3>
            <a href="#" title="Close" class="close-modal">X</a>
        </div>
        <div class="content">
            <h5>Select Agents</h5>
                <form>
                  @foreach ($agents as $agent)
                    <ul class="agents-select">
                        <li>
                            <h5>{{ $user->name }}</h5>
                            <input type="checkbox" name="agents[]"/>
                        </li>
                    </ul>
                  @endforeach
                  <input type="text" name="name"/>
                  <input type="email" name="email"/>
                  <textarea name="comments"></textarea>
                  <button type="submit" name="register">SEND</button>
                </form>
          </div>
      </div>
  </div>

Jquery:

    $('.register-interest').on('click', function(e) {
        e.preventDefault();
        $('.register-modal').show();
    });

    $('.register-modal a.close-modal').on('click', function(e) {
        e.preventDefault();
        $('.register-modal').hide();
    });

Реальный код:

HTML:

enter image description here

MODAL:

enter image description here

Jquery:

enter image description here

Как сохранить выбор ввода и сохранить при открытии модального?

С наилучшими пожеланиями заранее!

ОШИБКА ЭКРАНА

enter image description here

1 Ответ

1 голос
/ 07 июня 2019

Я предлагаю вам пройтись по первому списку, а затем скопировать статут его элементов во второй список.

Используйте jQuery#eq, чтобы найти соответствующие петли <input> и jQuery#prop, чтобы получить, если проверено или нет:

$('.register-interest').on('click', function(e) {
    e.preventDefault();

    $('.user-select input').each((i, input) => {
        $('.agents-select input').eq(i).prop('checked', $(input).prop('checked'));
    });

    $('.register-modal').show();
});

Рабочий пример:

$('#show-modal').on('click', () => {
  $('#checklist input').each((i, input) => {
    $('#modal input').eq(i).prop('checked', $(input).prop('checked'));
  });

  $('#modal').show();
});

$('#hide-modal').on('click', () => {
  $('#modal').hide();
});
#modal {
  display: none;
  
  border: 1px solid #000;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<ul id="checklist">
  <li>
    <span>User 1</span>
    <input type="checkbox" name="user[]">
  </li>
  
  <li>
    <span>User 2</span>
    <input type="checkbox" name="user[]">
  </li>
  
  <li>
    <span>User 3</span>
    <input type="checkbox" name="user[]">
  </li>
</ul>

<button id="show-modal">Show modal</button>

<ul id="modal">
  <li>
    <span>User 1</span>
    <input type="checkbox" name="user[]">
  </li>
  
  <li>
    <span>User 2</span>
    <input type="checkbox" name="user[]">
  </li>
  
  <li>
    <span>User 3</span>
    <input type="checkbox" name="user[]">
  </li>
  
  <li>
    <button id="hide-modal">Hide modal</button>
  </li>
</ul>
...