我在表单内有一个表格,其中有一个selectize输入字段。我必须根据某些条件填充选定的值。数据以块的形式进入表中,前10条记录显示了正确的选定值,但是当我追加表中的下10条记录时,选定的值没有出现时,有一个show more按钮,每当表中有10条记录时就会追加一个
。下面是我的代码:
此功能设置字段中的选项。我在这里使用offset来设置下一个追加行之后的所选值,这意味着offset值是第一次0到10秒钟,依此类推。
function initializeSelectizeChainage(options, offset) {
var $select_chainage = $('.select-tools-chainage').selectize({
maxItems: 1,
valueField: 'id',
labelField: 'chainage_name',
searchField: 'chainage_name',
options: options,
highlight: true,
openOnFocus: true,
create: false,
dropdownParent: 'body',
/*selectOnTab:true,*/
load: function(query, callback) {
if (!query.length) return callback();
$.ajax({
url: '<?php echo SITEURL; ?>/Requistion/selectChainage',
type: 'post',
dataType: 'json',
data: {
name: query,
},
error: function() {
callback();
},
success: function(res) {
callback(res);
}
});
}
})
var chainage_ids = arrayColumn(options, 'id');
var rows = $(".table tbody tr");
var valueToBeSet;
for (var i = offset; i < rows.length; i++) {
if ($.inArray($(rows[i]).find('.chainage').val(), chainage_ids) != -1) {
valueToBeSet = options[$.inArray($(rows[i]).find('.chainage').val(), chainage_ids)];
$select_chainage[i].selectize.setValue(valueToBeSet.id, true);
}
}
}
我在这里使用了arrayColumn()函数来获取每一行的chainage_id,以供我的逻辑设置正确的选项。功能下方:
function arrayColumn(array, columnName) {
return array.map(function(value, index) {
return value[columnName];
})
}
现在,它第一次可以正常运行,但是从下次开始,它将不会在selectixe文本字段中设置默认值。 感谢您的帮助。