我在django表单上使用了tom-select,在表单上我还做了一个reset按钮来清除所有的输入字段,当我点击这个按钮时,所有的输入值都被清除了,除了使用tom-select的那个。
第一个月
class ItemInputForm(ModelForm):
def __init__(self, *args, **kwargs):
super(ItemInputForm, self).__init__(*args, **kwargs)
self.helper = FormHelper(self)
self.helper.layout = Layout(
Row(
....
Column('item', css_class = 'col-md-4'),
css_class = 'row'
),
....
Div(
HTML('<button type="submit" class="btn btn-danger col-md-4 me-4"><i class="fa-solid fa-print"></i> Print</button>'),
HTML('<button type="reset" class="btn btn-warning col-md-4"><i class="fa-solid fa-rotate-left"></i> Reset</button>'),
css_class = 'text-center'
),
....
在template
上进行汤姆选择
$(document).ready(function()
{
var item_select = new TomSelect("#id_item",{
create: false,
placeholder: 'Search',
valueField: 'value',
searchField: 'text',
maxItems: 1,
closeAfterSelect: true,
render: {
option: function(data, escape) {
return '<div>' + '<span class="text">' + escape(data.text) + '</span>' + '<span class="value">' + escape(data.value) + '</span>' + '</div>';
},
item: function(data, escape) {
return '<div title="' + escape(data.value) + '">' + escape(data.text) + '</div>';
},
},
});
item_select.clear();
刷新页面时,由于item_select.clear()
的原因,输入栏被清除,但如果我想用重置按钮清除,输入栏就不能工作了,如何用重置按钮清除tom-select输入?
1条答案
按热度按时间wpx232ag1#
我也遇到过同样的问题,这是我的解决方案。
我为每个具有
tom-select-enabled
类的HTML元素启用tom-select,将每个创建的TomSelect
示例添加到form元素的数组中,并向form
添加一个reset
事件侦听器,该侦听器在form
的每个TomSelect
示例上调用clear()
。使用
tomSelectElement.tomselect
可能有一种方法可以做到这一点,但是,据我所知,一旦示例化了TomSelect
,就不会为元素触发reset
事件。