Django Jquery:基于选择,显示更多选择选项
Posted
技术标签:
【中文标题】Django Jquery:基于选择,显示更多选择选项【英文标题】:Django Jquery: based on selection, display further selection options 【发布时间】:2012-03-27 19:36:46 【问题描述】:用户必须选择一种车辆类型,然后根据他的选择,他可以选择车辆型号,然后根据该选择,他可以选择查看该型号可用的特定颜色。
每个车辆、模型和颜色都有单独的 django 模型,其中每个车辆实例有许多模型(多对多字段),每个模型都有颜色(多对多字段)。
您将如何创建模板以便用户能够动态执行此操作?我不想被重定向到不同的视图。我想我需要使用 jquery 以便用户可以从下拉框中选择车辆,然后根据他的选择出现另一个下拉框等等。
有什么想法吗?
【问题讨论】:
【参考方案1】:我的方法是使用 ajax 来动态更改选择框的内容。有很多方法可以实现这一点。这是一个……
创建 3 个选择框(车辆、模型、颜色) 用所有空白条目和所有车辆填充第一个 捕获车辆和模型的 onchange 事件并创建相应的 javascript 函数。这里是vehicleChange函数的sudo代码:
清除所有模型选择选项 清除所有颜色选择选项 使用 ajax 从服务器获取模型选择选项 填充模型选择框。这是modelChange函数的sudo代码:
清除颜色选择选项 使用 ajax 从服务器获取颜色选择选项 填充颜色选择框。所以现在发生的事情是:
因为您使用的是 ajax,所以您的页面不会刷新或重定向。 “模型”和“颜色”模型尽可能简单您对“模型”和“颜色”的看法变得非常小。一种可能的视图会产生如下内容:
要更改选择框中的选项,您可以使用 jquery 抓取选择框并将 html 替换为 ajax 调用的结果。
【讨论】:
:如果我们以前不知道选项菜单的个数,有什么解决办法吗?我把我的问题作为单独的问题:***.com/questions/16505587/…【参考方案2】:您可以使用 dajax,一个用于 django 的 ajax 库。在他们的网站上,他们甚至有一个非常相似的例子 --> http://www.dajaxproject.com/forms/
【讨论】:
以上是关于Django Jquery:基于选择,显示更多选择选项的主要内容,如果未能解决你的问题,请参考以下文章
基于选择的 Django 模板/ChoiceField 显示字段