我正在使用jQuery,bootstrap 4和bootstrap-select 1.13.2。
我需要能够手动选择引导程序选择器选项,并使用表单重置按钮清除它们,而不会触发任何事件。
我正在创建动态的引导程序选择selectpicker选项,并保存用户在sessionStorage中选择的任何内容,以便在提交表单后恢复用户的选择。我的意图是使用下面的代码手动选择在选择器中选择的任何项目。因此,如果用户离开页面并稍后返回,则我将引导选择selectpicker中的每个选项的“ selected”属性设置为true。我不确定如何在不使用selectpickers“ val()”属性触发不想要的更改事件的情况下设置所选选项。
// selected is either true or false
// $select is the selectpicker
$select.append($("<option></option>")
.attr("value", value)
.attr("selected", selected)
.text(text));
问题的症结所在。
如果单击表单重置按钮,则下面的两行代码将清除表单上任何选择器中的每个选定选项。这行得通。
// this is basically every selectpicker on the form
$parent.find("select.selectpicker").selectpicker('deselectAll');
$parent.find("select.selectpicker").selectpicker('refresh');
如果在单击重置按钮之后单击了selectpicker按钮(下拉部分),并且仅当如上所述将属性设置为true时,任何先前选中的选项都将获得其“ li”类和“ option”类别设置为“选定”,如屏幕快照“重置前”所示。