我正在使用Select2
作为我的下拉菜单&基于AJAX的查找。
在我的首次提交表单上,我有一个select2
下拉列表,名为" Type"。我有一个on
事件侦听该下拉列表以进行更改,然后在发生这种情况时触发另一个函数。
$('[name=in_type]').on("select2-selecting", function(e) {
console.log(e)
// Define our vars
var requestTypeID = e.val,
requestTypeText = e.object.text;
// Based on the type
generateForm(requestTypeText);
});
当我将事件记录到控制台时,我看到一个名为object
的对象,我可以在其中访问文本并在我的函数中使用它。
- 快进到我的"编辑表格"页 -
当用户回来编辑记录时,我必须设置type
字段的值,然后以编程方式触发select2-selecting
。
我是这样做的:
$('[name=in_type]').select2('data', {id:requestObj.requestType, text:requestObj.requestTypeName});
var evt = $.Event("select2-selecting", {
val: requestObj.requestType, // I have also tried passing ID instead of val
text: requestObj.requestTypeName
});
$("[name=in_type]").trigger(evt);
当上述事件触发此功能时,没有object
记录到控制台,就像我手动更改字段时一样。
我认为我试图通过的事件是不正确地包括对象还是那种性质的东西?
在编辑页面上,我可以自己点击下拉菜单,更改它并将对象记录下来。当我以编程方式触发它时,这不会发生,这使我错过了应该传递或错误地执行的操作。
我的问题摘要:
如何以编程方式将对象传递给select2事件,以保持与手动更改时相同的格式?