2015-07-02 2 views
0

Я пытаюсь сделать следующее.Передача переменной в html modal

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

Вот мой модальное

<div class="modal fade" id="group_selection" role="dialog"> 
<div class="modal-dialog"> 
    <div class="modal-content"> 

      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
       <h4 class="modal-title" id="myModalLabel">Select the journal club for which this vote should count</h4> 
      </div> 

      <div class="modal-body"> 
       <form> 

        {% for group in groups %} 

         <input class="group_sel" type="checkbox" value="{{ group[0] }}">{{ group[0] }} 
         </input><br> 

        {% endfor %} 
       </form> 
      </div> 

      <div class="modal-footer"> 
       <input class="btn btn-primary multivote" type="submit" data-dismiss="modal" value="Select" /> 
       <input class="btn btn-default" type="button" data-dismiss="modal" value="Close" /> 
      </div> 
     <!-- </form> -->         
    </div> 

Модальное выше показывает выбор групп. Этот выбор один и тот же для каждого модального, так что он работает нормально, но теперь я хочу отключить оператор ввода в цикле for, в зависимости от того, какая кнопка была нажата, чтобы перейти к этому модальному.

Я не знаю, как создавать новые переменные внутри html. Я надеялся, что JQuery может помочь с этим, поэтому я вызвать модальный с помощью следующей команды JQuery

<script type="text/javascript"> 
$(document).ready(function(){ 
    $(".vote").click(function(){ 
     $('#group_selection').modal('show'); 
    }); 
}); 
</script> 

Я знаю, что я могу использовать JQuery, чтобы писать значения в HTML-код (как показано здесь Passing data to a bootstrap modal), но я не Как я могу использовать это, чтобы сделать выбор?

Спасибо за вашу помощь

лучшего

деревенщина

ответ

0

Просто определить, какие из кнопок .vote нажимал и выполнить соответствующую задачу перед показом модальности, то есть:

$(".vote").click(function(){ 
     switch($(this).attr('value')) 
     { 
      case '5 Stars': // Assumes your button's value was '5 Stars' 
      $('#group1').attr('disabled','disabled'); //disables group1 when 5 stars was selected 
       break; 
      case '4 Stars': ... break; 
     } 
     $('#group_selection').modal('show'); 
    }); 

Или назначьте каждой другой кнопке другой обработчик .click() для выполнения соответствующей задачи.

Side Примечание: Вы должны также сбросить все отключает при открытии модального и сбросить форму, чтобы сделать его свежим для каждой нагрузки, а

+0

Привет деревенщина K, спасибо за Ваш ответ. Что, если количество вариантов должно быть динамическим? В моем случае это не только 5 звезд, 4 звезды и т. Д. У меня есть 10 элементов для голосования, на которые передаются html-код в виде списка. Этот список меняется каждый день – carl

+0

@carl Если кнопки '.vote' меняются, у них должна быть какая-то логика, связанная с ними, которая должна быть интерпретирована. Будет ли стандартный набор возможных действий? –

+0

Извините, я, возможно, упростил проблему выше. Пункт упражнения состоит в том, что нельзя никогда дважды голосовать за один и тот же объект и ту же группу. Поэтому я передам список предыдущих голосов в html, который я предварительно вычислил в python-фляге. Поэтому у меня есть список голосов и список элементов для голосования. Длина обоих списков динамическая. Каждая кнопка связана с элементом, и я знаю, как передать имя элемента в jquery. Если бы я мог получить доступ к списку голосов в jquery, я мог бы выполнить сравнение в jquery. Вы знаете, как обращаться к переменным в jquery ... – carl

Смежные вопросы