我正在使用select2 3.5.3从JSON文件中获取远程数据,以便在Drupal节点编辑表单中填充字段。
当没有存储值时,我的javascript很有效地获取值,显示一些占位符文本以向用户发出指令,但是当我加载已经存储了值的页面时,select2中没有显示任何内容。
你会看到输入有一个值,但是我想要的是显示文本,可以从JSON文件中匹配。
HTML:
<input type="text" id="myfieldid" name="myfieldname" value="my value" style="display: none;">
JS:
$("#edit-field-crm-link-und-0-value").select2({
minimumInputLength: 3,
placeholder: "Start typing to search for course titles",
ajax: {
url: "http://offthehookdesign-domain.uk/available-courses.txt",
dataType: 'json',
type: "GET",
quietMillis: 50,
data: function (term) {
return {
term: term
};
},
results: function(data, page ) {
return { results: data}
}
}
});
这似乎应该可以使用initSelection,但我能得到的最接近的是使用以下JS获取输入的值:
initSelection: function(element, callback) {
var id=$(element).val();
if (id!=="") {
callback({id:id, text : $(element).attr('value')});
}
}
显然我想在原始JSON文件中显示与此ID值匹配的文本。