2015-07-09 2 views
2

У меня есть два DataTables и есть выпадающий создан во втором с данными первого. Я создал jsbin hereКак получить значение из выпадающего списка в ячейке DataTables

Если вы добавили пару инструкций в первую таблицу (добавьте текст и затем нажмите «Добавить инструкцию»), затем нажмите кнопку Load Copied Data, вы увидите, что раскрывающийся список заполнен из первая таблица.

Если я:

$('#btnTest').on('click', function (e) { 

    var tsor = $('#tblSORSInstall').dataTable(); 
    var ins = tsor.fnGetData(); 


    alert(ins); 

}); 

Это в основном дает мне HTML для выпадающего списка - как я могу получить какое значение они выбрали? Я думал о наличии скрытого столбца и обновлении этого значения на onchange выпадающего списка , но есть ли лучший способ?

Заранее спасибо

+0

как вы выбираете строку? я имею в виду, что вы хотите отслеживать по очереди строки и получать выбранное значение? Или вы хотите выбрать строку по своему пользовательскому атрибуту, а затем выбрать выбранное значение? –

+1

попробуйте этот 'tsor.fnGetNodes()', чтобы получить все узлы. –

+0

@SiamakFerdos Я хочу это для всех строк – leddy

ответ

0

Использование tsor.fnGetNodes() вы можете получить все узлы, строк таблицы, то вы можете перебрать те и получить выбрать значение.

Окончательный код будет выглядеть примерно так

$('#btnTest').on('click', function (e) { 
    var tsor = $('#tblSORSInstall').dataTable(); 
    var ins = tsor.fnGetData(); 
    var a = tsor.fnGetNodes(); 
    $.each(tsor.fnGetNodes(), function (index, value) { 
     alert($(value).find('select').val()); 
    }); 
}); 
3

Вы можете использовать jQuery.map() для создания массива выбранного текста/значение, как показано ниже.

$('#btnTest').on('click', function (e) { 

    //var tsor = $('#tblSORSInstall').dataTable(); 

    var ins = $('#tblSORSInstall').find("tbody select").map(function() { 

     return $(this).find(":selected").text() // get selected text 
     //return $(this).val() // get selected value 

    }).get() 

    alert (JSON.stringify(ins, null, 2)) 

}); 

Вот ваш JS Bin - updated

+0

Спасибо, это здорово и по тем же линиям ответа Серлина - +1 для функции карты, которую я никогда раньше не видел :) – leddy

Смежные вопросы