2014-11-29 3 views
0

Я хочу добавить еще несколько полей на основе избранных пользователем Type of Event.Обновление формы Django на основе ввода

Каков наилучший способ добавления дополнительных полей на основе выбора пользователей без обновления страницы?

Я думал о вызове ajax, когда пользователь нажимает Add the details и возвращает html?

Есть ли способ сделать это, используя систему шаблонов с серией условных условий if/else?

enter image description here

ответ

1

Два решения приходят на ум здесь ...

1)

Приложить обработчик изменения Jquery к «Тип события» выберите элемент, и выполнить AJAX запрос, чтобы вернуться динамические поля, которые необходимо будет отобразить.

$('#TYPE_OF_EVENT_ID').change(function() { 
    $.get('/api/to/return/dynamic/fields/', {'type_of_event': $(this).val()}, function(data, textStatus, jqXHR) { 
     # Update DOM with dynamic content return by data (should probably be JSON) 
    }); 
}); 

2)

жесткий код логики прямо в ваш JavaScript, чтобы обрабатывать заявления тематические для отображения динамических полей в зависимости от значения, выбранного в «Тип события» выберите элемент.

$('#TYPE_OF_EVENT_ID').change(function() { 
    switch($(this).val()) { 
     case 'Special Event': 
      # Show Special Event Fields 
     case 'Non Special Event': 
      # Show Non Special Event Fields 
    } 
}); 

Я бы рекомендовал вариант 1, поскольку он масштабируется лучше, сохраняя эту логику на сервере, чтобы она управлялась базой данных.

+0

Интересно, я думал, что вариант 1 немного переборщил, чтобы иметь запросы на серверную часть, чтобы обновить форму, но я возьму ваш совет –

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