我想根据用户选择Type of Event
添加更多字段。
根据用户选择添加其他字段而不刷新页面的最佳方法是什么?
当用户点击Add the details
并返回html时,我在考虑调用ajax?
有没有办法使用带有一系列if / else条件的模板系统来做到这一点?
答案 0 :(得分:1)
这里有两种解决方案......
1)
将jQuery更改处理程序附加到'Type of Event'选择元素,并执行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中以处理case语句,以显示动态字段,具体取决于在'Event of Event'选择元素中选择的值。
$('#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,因为它可以更好地扩展,使服务器上的逻辑保持数据库驱动。