2017-12-27 14 views
0

x-editable과 함께 BootstrapTable을 사용하여 연락처 선택 상자가있는 테이블을 작성했습니다. 사용자가 새 값을 선택하면 선택한 값에 경고를 표시합니다. editable-save.bs.table을 사용하면 선택 옵션과 관련된 값을 얻을 수 있지만 이는 사용자에게 의미가 없습니다. 그 이름과 관련된 연락 이름을 얻고 싶습니다. 당신은 배열에 소스를 덤프 한 다음 검색하는 행 찾기 위해 그것을 물마루 반복 할 수 http://jsfiddle.net/cdvtkndu/BoostrapTable로 변경시 값 대신 텍스트 가져 오기 X 편집 가능한 선택 상자

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

당신은 모든 필드를 저장하는 변수로 _source를 사용하여 물마기를 반복하고 if를 사용하여 필드를 검사하는 데 필요한 필드를 표시하는 다른 배열을 지정할 수 있습니다. (만약 내가 뭘 원하는지 이해하지, 제발 정정하고 더 많은 코드를 제공합니다) 이런 식으로 : http://jsfiddle.net/9ouxeozs/ –

+0

그래, 아무 것도 x- 편집 가능한 라이브러리에 내장되어 있기 때문에 가장 좋은 방법 인 것 같아. 내가 찾을 수있는 – user2242044