如何使用javascript以编程方式(单击按钮)为django-select2字段设置值?
Posted
技术标签:
【中文标题】如何使用javascript以编程方式(单击按钮)为django-select2字段设置值?【英文标题】:How to set value to django-select2 field Programmatically (on button click) using javascipt? 【发布时间】:2021-08-16 07:28:18 【问题描述】:在我的 django 应用程序中,我有一个 WorkerModel 和一个 ProvinceModel,每个工人都有一个 Province_id 字段。我已经使用 ModelSelect2Widget (django_select2) 为 Province_id 定义了一个 Worker 表单。我想知道如何使用javascript 为province_id 字段设置一个值。 我试过了:
$('#id_province_id').val(province_id).trigger('change');
但不起作用。这是我的表单的定义
from django_select2.forms import ModelSelect2Widget
class WorkerForm(forms.ModelForm):
class Meta:
model = WorkerModel
exclude = ("id",)
widgets =
'name':forms.TextInput(attrs='class': 'form-control'),
'province_id' : ModelSelect2Widget(model=ProvinceModel, queryset=ProvinceModel.objects.filter(),
search_fields=['des_prov__icontains'],
attrs='style': 'width: 100%;'),
in the template
<script>
//on a button click a want to set the value of province_id
$(document).ready(function ()
$('#id_province_id').djangoSelect2(
placeholder: 'Seleccione una opción',
escapeMarkup: function (markup) return markup; ,
language:
noResults: function ()
return "No se encuentran resultados.";
);
);
</script>
【问题讨论】:
【参考方案1】:你可以在你的 ajax 成功函数上试试这个:
success: function(data)
// Assumes that data.result is your proovince id
if(data.hasOwnProperty('result'))
$('#id_province_id').val(data.result).trigger('change');
【讨论】:
您可以使用 S 检查 data.results,并且可以检查您拥有的小部件:queryset=ProvinceModel.objects.filter() 但 filter() 没有得到任何搜索 kwargs,因此,请使用 . all() 代替以上是关于如何使用javascript以编程方式(单击按钮)为django-select2字段设置值?的主要内容,如果未能解决你的问题,请参考以下文章