如何使用jQuery重置Django应用程序中的可选字段



我最近被要求接管一个部分编写的Django应用程序。 Python,我可以处理,但我没有Javascript经验,这使用jQuery来做一堆表单操作。 提交表单后,表单本身应重置为原始状态。 但是,虽然重置似乎大部分有效,但任何选择字段(单个或多个(都会显示在网页上以保留其旧值。

这些字段在 Django 应用程序中定义如下

business_unit = forms.ChoiceField(
label='Business unit',
required=True,
choices=BUSINESS_UNIT_CHOICES,
widget=forms.Select(attrs={'data-placeholder':'Select one', 'data-minimum-results-for-search':'10', 'data-tags':'true'}),
)

重置是通过

$('#custom-form').trigger('reset');

清除所有简单文本字段。 选择字段值实际上已清除(它们不包含任何值(,但在 Web 表单上,它们似乎仍被填充。 有什么建议我错过了什么吗?

您可以执行以下操作: 除了重置之外,还可以将其添加到代码中以循环访问所有选择字段并将它们设置为第一个选项(通常这是带有"请选择"占位符的选项(。

let selects = document.getElementsByTagName("select");
for(let i=0; i < selects.length; i++){
selects[i].selectedIndex = 0;
}

正如我在问题中提到的,我是一个完全的Javascript新手。 今天我了解了插件,在这种情况下称为 select2。 一旦我理解了这一点,就像在表单重置后添加以下内容一样简单

$( "select" ).each(function( index ) {
$( this ).trigger('change');
});

最新更新