Django Jquery:根据选择,显示更多选择选项

时间:2012-03-10 19:35:14

标签: jquery django django-models django-templates jquery-click-event

用户必须选择车辆类型,然后根据他的选择,他可以选择车辆模型,然后根据该选择,他可以选择查看该车型可用的特定颜色。

每种车辆,型号和颜色都有单独的django模型,其中每个车辆实例都有许多模型(多对多领域),每个模型都有颜色(多对多领域)。

您将如何创建模板以便用户能够动态执行此操作?我不想被重定向到不同的视图。我想我需要使用jquery,以便用户可以从下拉框中选择车辆,然后根据他的选择出现另一个下拉框等。

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

我的方法是使用ajax动态更改选择框的内容。有很多方法可以实现这一点。这是一个......

  • 创建3个选择框(车辆,型号,颜色)
  • 使用所有空白条目加上所有车辆填充第一个
  • 捕获车辆和模型的onchange事件并创建相应的javascript函数。

这是vehicleChange函数的sudo代码:

  • 清除所有型号选择选项
  • 清除所有颜色选择选项
  • 使用ajax
  • 从服务器获取模型选择选项
  • 填充模型选择框。

以下是modelChange函数的sudo代码:

  • 清除颜色选择选项
  • 使用ajax
  • 从服务器获取颜色选择选项
  • 填充颜色选择框。

所以现在发生的事情是:

  • 因为您使用的是ajax,您的页面将无法刷新或重定向。
  • “模特”和“颜色”的模型尽可能简单
  • 您对“模特”和“颜色”的看法变得非常小。一种可能的观点会产生类似的结果:

    < option value =“Red”> Red< / option>
    < option value =“White”> Blue< / option>
    < option value =“Blue”> Blue< / option>

要更改选择框中的选项,您可以使用jquery来获取选择框并将html替换为ajax调用的结果。

答案 1 :(得分:0)

你可以使用dajax,一个用于django的ajax库。在他们的网站上,他们甚至有一个非常相似的例子 - > http://www.dajaxproject.com/forms/