我有一个问题select2值不显示时,点击提交或页面回发发生。我从数据库加载数据 AJAX 助手。
下面是我的select2代码:
$('#<%=fstName.ClientID%>').select2({
placeholder: 'Enter Reviewer',
minimumInputLength: 0,
multiple: true,
autoClear:false,
ajax: {
type: 'POST',
url: 'BulkPickers/GetRev',
dataType: 'json',
data:
function (term, page) {
return {
appinstid: appInstId,
searchTerm: term,
selection: $('#<%=fstName.ClientID%>').val()
};
},
results: function (data, page) {
var myResults = [];
$.each(data, function (index, item) {
myResults.push({
id: item.id,
text: item.text
});
});
return {
results: myResults
};
},
initSelection:
function (element, callback) {
var data = [];
$(element.val().split(",")).each(function () {
data.push({ id: this, text: this });
});
callback(data);
}
}
});
3条答案
按热度按时间fxnxkyjh1#
我找到了解决方案。需要在文本更改时填充隐藏字段值,然后在select2上使用隐藏输入值进行初始化。以下是完整代码:
laawzig22#
我相信这可能是由于您在回发期间没有重新填充SELECT中的项目造成的(因为您使用 AJAX 填充它们,并且它们不是您模型的一部分。)因此,您试图将SELECT的值设置为不存在的OPTION的ID。
我描述了这个问题,并使用模型中引用的项目填充SELECT,这意味着在回发后,该值会自动保留在SELECT中。不需要“手动”设置该值。OPTION必须在SELECT中才能显示。
ubby3x7f3#