在Django中检查选定的表单选项并更新页面

时间:2012-11-20 00:09:01

标签: jquery django database-connection

所以我正在使用django,我有一个看起来像的页面/模板(仅简化为相关部分)

<select id="printerSelect" name="printer_id">
<option>Select Printer</option>                             
<option>printer1</option>                           
<option>printer2</option>                           
</select>

以后我有点像

<div id="printerInfo">
No printer Selected
</div>

因此,通过查询mongodb数据库,查找打印机名称并通过django模板/上下文填充动态将它们放入页面加载列表中来填充printerSelect列表。是否有可能知道用户何时选择该列表中的选项并让它更改printerInfo div的内容?

如果有帮助,我也知道jquery。我认为主要问题是:

  1. 如何判断用户何时更改列表中的选择(可能可以使用绑定的jquery侦听器来完成?)
  2. 如何根据所选选项查询数据库以获取其他信息
  3. 修改

    所以我实际上想出了一个使用Sushanth建议的hacky方式。基本上在django模板中,您创建了一堆div,其中包含从数据库请求的附加信息,最终将进入printerInfo。

    然后使用jquery,您可以使用“printer1”,“printer2”作为该信息的映射键,将该信息保存到变量中。然后你删除这些div。因为这一切都是在加载页面时完成的,所以用户永远不会看到任何此类内容。

    然后,只要选择了某个项目,就可以使用选择文本作为地图的键,其中包含打印机信息div中的值/文本。然后,只需将文本字段更改为

    即可

1 个答案:

答案 0 :(得分:2)

您可以使用.change()事件来获得第一个要求

$('#printerSelect').on('change' , function() {
     // Code here
     var $this = $(this);
    var text = "No Printer Selected";
    if($this.find('option:selected').index() !== 0){
        text = $this.find('option:selected').text() + ' Selected';
    }     
    $('#printerInfo').html(text);
}).change();​​​​

<强> Check Demo

如果您想从服务器获取数据,请发送一个特殊选项的AJAX请求。