我试图在下拉列表框中设置页面加载时的默认值,该列表框通过ajax调用加载值。无法使用文档中建议的setValue方法设置值。请帮忙。以下是项目的代码片段
HTML
<select name="country" placeholder="Please Select Country ..."></select>
数据填充JS代码
$('[name="country"]').selectize({
valueField: 'name',
labelField: 'name',
searchField: 'name',
preload: true,
create: false,
render: {
option: function(item, escape) {
return '<div>' + escape(item['name']) + '</div>';
}
},
load: function(query, callback) {
$.ajax({
url: '/countrydata',
type: 'GET',
error: function() {
callback();
},
success: function(res) {
callback(res);
}
});
},
});
默认值设置代码
$('[name="country"]').selectize();
$('[name="country"]')[0].selectize.setValue("Japan");
我能解决这个问题吗?我现在一直试图让这项工作工作几天。
感谢您的阅读。任何帮助将不胜感激。
答案 0 :(得分:3)
您已关闭,但我认为您的问题是您尝试将该值设置为列表中不存在的选项。您需要先添加选项:
$('[name="country"]').selectize();
var item = {};
item.name = "Japan"; //Based on your render function, which uses item['name'] and labelField, searchField, etc.
$('[name="country"]')[0].selectize.addOption(item);
$('[name="country"]')[0].selectize.setValue(item.name);