如何从数据表单元格的下拉列表中获取值
How to get value from dropdown in datatables cell
我有两个 datatables 并且在第二个中创建了一个 dropdown 数据来自首先。我创建了一个 jsbin here
如果您向第一个 table 添加几条说明(添加任何文本,然后单击“添加说明”)- 然后单击 Load Copied Data
按钮,您将看到下拉框已填充从第一个 table.
如果我这样做:
$('#btnTest').on('click', function (e) {
var tsor = $('#tblSORSInstall').dataTable();
var ins = tsor.fnGetData();
alert(ins);
});
它基本上为我提供了 下拉列表 的 html - 我如何获得他们选择的值?我想有一个隐藏的列并在 下拉列表 的 onchange
上更新它,但是有更好的方法吗?
提前致谢
您可以使用 jQuery.map() 生成所选 text/value 的数组,如下所示。
$('#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
使用 tsor.fnGetNodes()
你可以获得所有 table 行节点,然后你可以遍历这些节点并获得 select 值。
最终代码看起来像
$('#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());
});
});
我有两个 datatables 并且在第二个中创建了一个 dropdown 数据来自首先。我创建了一个 jsbin here
如果您向第一个 table 添加几条说明(添加任何文本,然后单击“添加说明”)- 然后单击 Load Copied Data
按钮,您将看到下拉框已填充从第一个 table.
如果我这样做:
$('#btnTest').on('click', function (e) {
var tsor = $('#tblSORSInstall').dataTable();
var ins = tsor.fnGetData();
alert(ins);
});
它基本上为我提供了 下拉列表 的 html - 我如何获得他们选择的值?我想有一个隐藏的列并在 下拉列表 的 onchange
上更新它,但是有更好的方法吗?
提前致谢
您可以使用 jQuery.map() 生成所选 text/value 的数组,如下所示。
$('#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
使用 tsor.fnGetNodes()
你可以获得所有 table 行节点,然后你可以遍历这些节点并获得 select 值。
最终代码看起来像
$('#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());
});
});