如何使用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字段设置值?的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式单击 WPF 中的按钮?

如何以编程方式单击 JavaScript 中的元素?

单击按钮时如何以编程方式触发刷新primeNG数据表

我如何以编程方式从另一种方法单击 JavaFX 中的按钮?

Objective-C:以编程方式单击网站按钮

我可以以编程方式单击按钮以获得预定义的意图吗?