0

所以我正在使用 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>

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

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

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

编辑

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

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

然后,无论何时选择一个项目,您都使用选择文本作为映射的键,该映射包含将在 printerInfo div 中的值/文本。然后只需将其文本字段更改为任何内容即可

4

1 回答 1

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();​​​​

检查演示

If you want to get the Data from the server , then send in an AJAX request for a paricular option.

于 2012-11-20T00:10:45.557 回答