我看到三个问题:
- Select2 控件的显示在其值因表单重置而更改时不会刷新。
- “全部”选项没有
value
属性。
- “全部”选项被禁用。
首先,我建议您使用该setTimeout
功能确保表单重置完成后执行代码。
单击按钮时,您可以执行代码:
$('#searchclear').click(function() {
setTimeout(function() {
// Code goes here.
}, 0);
});
或者当表单被重置时:
$('form').on('reset', function() {
setTimeout(function() {
// Code goes here.
}, 0);
});
至于使用什么代码:
由于禁用了“全部”选项,因此表单重置不会使其成为选定值。因此,您必须将其显式设置为选定值。方法是使用 Select2 "val" 函数。并且由于“All”选项没有value
属性,所以它的值和它的文本一样,都是“All”。因此,您应该在所选答案中使用 thtsigma 给出的代码:
$("#d").select2('val', 'All');
如果要将属性value=""
添加到“全部”选项,则可以使用 Daniel Dener 给出的代码:
$("#d").select2('val', '');
如果没有禁用“全部”选项,那么您只需要强制 Select2 刷新,在这种情况下您可以使用:
$('#d').change();
注意:Lenart 的以下代码是一种清除选择的方法,但不会导致选择“全部”选项:
$('#d').select2('data', null)