我正在 django 做一个项目,我有两个选择,一个显示区域,另一个显示所有公社,我需要根据区域的选择,公社显示在另一个选择中,我必须用jquery来做。
我的数据库模型如下:
class Region(models.Model):
nro_region = models.IntegerField(unique=True)
nombre = models.CharField(max_length=60)
class Comuna(models.Model):
nombre = models.CharField(max_length=60)
region = models.ForeignKey(Region, on_delete=models.CASCADE)
以及我使用 django admin 插入它们的地区和公社的所有数据,我以以下方式在我的模板中显示选择,在其中我执行一个 for 循环来遍历它们并显示它们:
<div class="form-row">
<div class="form-group col-md-6">
<label for="cboregion">Región:</label>
<select class="form-control" name="cboregion" id="cboregion" onchange="console.log(this.value)" required >
<option value="">Seleccionar</option>
{% for r in regiones %}
<option value="{{ r.id }}">{{ r.id }}</option>
{% endfor %}
</select>
</div>
<div class="form-group col-md-4">
<label for="cbocomuna">Comuna:</label>
<select name="cbocomuna" id="cbocomuna" class="form-control" onchange="console.log(this.value)" disabled required>
<option value="">Seleccionar</option>
{% for c in comunas %}
<option value="{{ c.id }}">{{ c.region.id }}</option>
{% endfor %}
</select>
</div>
</div>
到目前为止,如果先前选择了区域选择中的选项,我只能激活公社选择,但我不知道如何显示具有区域 ID 的公社:
$(document).ready(function(){
$("#cboregion").change(function(){
if($("#cboregion").val() != ""){ //si una region es seleccionada quitara la propiedad disabled
$("#cbocomuna").prop('disabled', false);
}
else{
$("#cbocomuna").prop('disabled', true); //si una comuna no esta seleccionada mantendra la propiedad disabled
}
});
});
您可以将属性添加到包含它对应的区域的公社的选项中。
您的 HTML 代码如下所示:
接下来,您可以看到根据区域选择过滤公社的示例。