我有一个附加到SELECT元素的Select2 jquery插件。该 Select2 具有 allowClear 属性。
当我在列表中选择一个值时,相应的输入框没有设置为反映所选值。所选值由 JQGRID 编辑表单设置。
这是我创建选择列的方式:
{name: "responsable", width: 200, editable: true, edittype: "select", formatter: 'select', editrules: {required: false}, editoptions: {style: 'width: 310px', value: '{{ usuarios }}', dataInit: function(el) {
$(el).select2(
{
placeholder: "-[Seleccione responsable]-",
width: 310,
allowClear: true
});
}}, stype: 'select', searchoptions: {sopt: ['eq'], value: '{{ usuarios }}'}},
当我第一次打开编辑对话框时,输入框是用网格中的值设置的,但是当我选择另一个元素时,旧值会显示在输入文本中,但是,当我展开选择列表时,正确的值显示为选中。
我该如何解决这个问题?
谢谢海梅
Select2 绑定到底层更改事件。如果以编程方式更改值(例如,通过 $.val
),则不会触发此事件,因此必须手动触发它:
$(el).val('some new value').trigger('change')
这将导致 Select2 接受更改并正确更新。
有关详细信息,请参阅 Select2 的示例页面,在 programmatic access
下。