我正在使用 django 模型中的选择项和 onchange 事件来触发 JS 脚本:
表格.py
class forms_bdc(forms.ModelForm):
[...]
bdc_description_1 = forms.ModelChoiceField(queryset=models_products.objects.values_list('product_denomination', flat=True),required=False, widget=forms.Select(attrs={'id': 'editable-select-2','onchange': 'populate_selected_product(this.id,this.value)'}),empty_label=None )
它工作得很好,但如果我使用 jquery-editable-select 将我的选择项转换为可搜索数据列表,则 onchange 事件不再触发 JS 脚本...
有人知道解决方法吗?
模板.html:
<script>
function populate_selected_product(product_selectbox_id, product_selectbox_value) {
$.ajaxSetup({
data: {
product_num: product_selectbox_value,
csrfmiddlewaretoken: '{{ csrf_token }}'
},
});
$.ajax({
type: "GET",
url: "../populate_selected_product/",
success: function (data) {
$("#div_update_row_bdc_product").html(data)
$('#'+product_selectbox_id).parent().find('#id_id_bdc').val($("#id_product_denomination").val())
}
});
}
// and here is the code to transform the select item with jquery-editable-select
$('#editable-select-2').editableSelect({effects: 'fade'});
</script>
通过此链接,我终于找到了操作方法: https://indrimuska.github.io/jquery-editable-select/
在我的示例中,这就是我所做的:
$('#editable-select-2').editableSelect().on('select.editable-select',
function (e, li) {
populate_selected_product($('#editable-select-2').attr('id'),li.text())
});