2017-12-27 501 views
0

我使用BootstrapTablex-editable來構建包含選擇聯繫人框的表。當用戶選擇一個新值時,我會提醒他們他們選擇了什麼。使用editable-save.bs.table,我可以獲得與選擇選項相關的值,但這對用戶無意義。我想獲取與該值關聯的聯繫人姓名。怎樣才能做到我這樣做在更改BoostrapTable X可編輯選擇框時獲取文本而不是值

小提琴: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); 
}); 

回答

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/

+0

謝謝。我曾想到這一點。這個方法唯一的問題是我真正的桌子有很多領域,有些是選擇框,有些則不是。我不知道如何確定哪些需要循環來源數組。有任何想法嗎? – user2242044

+0

你可以有另一個數組標記至少需要迭代低谷並用if檢查它,使用_source作爲保存所有字段的變量。 (如果我明白你想要什麼,如果不是,請糾正我,並提供更多的代碼)類似這樣的:http://jsfiddle.net/9ouxeozs/ –

+0

是的,這似乎是最好的辦法,因爲什麼都沒有內置到X可編輯庫我可以找到。 – user2242044

相關問題