在更改为BoostrapTable X可编辑选择框时获取文本而不是值

问题描述 投票:0回答:1

我使用BootstrapTablex-editable来构建一个包含一组选择的联系人的表。当用户选择一个新值时,我会让他们提醒他们选择了什么。使用editable-save.bs.table,我能够获得与选择选项相关的值,但这对用户来说毫无意义。我想获得与该值相关联的联系人姓名。我该怎么做

小提琴:http://jsfiddle.net/cdvtkndu/

var data = [{"Contact": 3}, {"Contact": 2}];

$(function () {
    $('#table').bootstrapTable({
        columns: [{
            field: 'Contact',
            title: 'Contact',
            editable: {
                type: 'select',
                source: [
                    {value: 4, text: 'Andrew'},
                    {value: 2, text: 'John'},
                    {value: 3, text: 'Liz'}
                ]
            }
        }],
        data: data
    });
});

$('#table').on('editable-save.bs.table', function (e, field, row, old, $el) {
    var new_val = row[field];
    alert(new_val);
});
javascript jquery x-editable bootstrap-table
1个回答
1
投票

您可以将源转储到数组中,然后遍历它以查找您要搜索的行:

var data = [{"Contact": 3}, {"Contact": 2}];
var _source = [
                    {value: 4, text: 'Andrew'},
                    {value: 2, text: 'John'},
                    {value: 3, text: 'Liz'}
                ];
$(function () {
    $('#table').bootstrapTable({
        columns: [{
            field: 'Contact',
            title: 'Contact',
            editable: {
                type: 'select',
                source: _source
            }
        }],
        data: data
    });
});
$('#table').on('editable-save.bs.table', function (e, field, row, old, $el) {
    var new_val = row[field];
    var arrayLength = _source.length;
    for (var i = 0; i < arrayLength; i++) {
        if (_source[i].value == new_val) {
                alert(_source[i].text);
          break;
        }
    }    
});

看看我的纠正:http://jsfiddle.net/4qq1yp1y/

© www.soinside.com 2019 - 2024. All rights reserved.