在 HTML table 中下拉并在 javascript 中的 table 数据中选择值
Drop down in HTML table and have selected value in table data in javascript
我在 html Table
中有下拉菜单
<td contenteditable="true">
<select class="currentCulture form-control">
<option value="0" >1</option>
<option value="1" >2</option>
<option value="2" >3</option>
</select>
</td>
<td contenteditable="true">Stir Fry</td>
<td contenteditable="true">stir-fry</td>
<td contenteditable="true">Stir Fry</td>
我 return HTML table 的全部数据以 json 形式发送到我的控制器 ajax 调用
var table = $('#datatable').tableToJSON();
var datatosend = JSON.stringify(table)
alert(JSON.stringify(table));
$.ajax({
type: "POST",
url: '/SalesContracts/addd',
data: datatosend,
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: function () {
alert('hii');
},
error: function (ex) {
alert('Failed to retrieve states.' + ex);
}
});
并得到类似
的结果
{[
{
"Brand": "1\n 2\n 3",
"Model": "Stir Fry",
"Name": "stir-fry",
"Quantity": "Stir Fry",
"Unit": "stir-fry",
"Price Cost": "Stir Fry",
"SubTotal": "stir-fry",
"": ""
}
]}
我收到了 select(下拉列表)的所有三个选项 "brand" 我只想在 Jsondata 中获得 selected 一个。有什么可能的解决方案吗? .如果有人帮助 me.Thank 你,我将不胜感激。
Table到json方法
(function(e){e.fn.tableToJSON=function(t){var n={ignoreColumns:[],onlyColumns:null,ignoreHiddenRows:!0,headings:null};t=e.extend(n,t);var r=function(e){return e!==undefined&&e!==null?!0:!1},i=function(n){return r(t.onlyColumns)?e.inArray(n,t.onlyColumns)===-1:e.inArray(n,t.ignoreColumns)!==-1},s=function(t,n){var r={};return e.each(n,function(e,n){e<t.length&&(r[t[e]]=n)}),r},o=function(t){var n=[];return e(t).children("td,th").each(function(t,s){if(!i(t)){var o=e(s).data("override"),u=e.trim(e(s).text());n[n.length]=r(o)?o:u}}),n},u=function(e){var n=e.find("tr:first").first();return r(t.headings)?t.headings:o(n)},a=function(n,i){var u=[];return n.children("tbody,*").children("tr").each(function(n,a){if(n!==0||r(t.headings))if(e(a).is(":visible")||!t.ignoreHiddenRows)u[u.length]=s(i,o(a))}),u},f=u(this);return a(this,f)}})(jQuery);
如果有另一种方法可以获取具有 selected 下拉值的 table 数据,请指导我 that.Thank 你。
我不知道这是否会对您有所帮助,或者这可能不是优化的方法,但它可以完成工作。
你不能删除未选择的选项并生成 json.
我添加了一个临时文件 div 并克隆了 table 并添加到其中
<div id="tempdiv" style="visibility:hidden">
$('#datatable').clone().appendTo($("#tempdiv"));
var tempTable=$("#tempdiv").children(0);
var sel = tempTable.find(".currentCulture");
$(sel).children().not("option:selected").remove();
var table = (tempTable).tableToJSON();
我在 html Table
中有下拉菜单 <td contenteditable="true">
<select class="currentCulture form-control">
<option value="0" >1</option>
<option value="1" >2</option>
<option value="2" >3</option>
</select>
</td>
<td contenteditable="true">Stir Fry</td>
<td contenteditable="true">stir-fry</td>
<td contenteditable="true">Stir Fry</td>
我 return HTML table 的全部数据以 json 形式发送到我的控制器 ajax 调用
var table = $('#datatable').tableToJSON();
var datatosend = JSON.stringify(table)
alert(JSON.stringify(table));
$.ajax({
type: "POST",
url: '/SalesContracts/addd',
data: datatosend,
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: function () {
alert('hii');
},
error: function (ex) {
alert('Failed to retrieve states.' + ex);
}
});
并得到类似
的结果 {[
{
"Brand": "1\n 2\n 3",
"Model": "Stir Fry",
"Name": "stir-fry",
"Quantity": "Stir Fry",
"Unit": "stir-fry",
"Price Cost": "Stir Fry",
"SubTotal": "stir-fry",
"": ""
} ]}
我收到了 select(下拉列表)的所有三个选项 "brand" 我只想在 Jsondata 中获得 selected 一个。有什么可能的解决方案吗? .如果有人帮助 me.Thank 你,我将不胜感激。
Table到json方法
(function(e){e.fn.tableToJSON=function(t){var n={ignoreColumns:[],onlyColumns:null,ignoreHiddenRows:!0,headings:null};t=e.extend(n,t);var r=function(e){return e!==undefined&&e!==null?!0:!1},i=function(n){return r(t.onlyColumns)?e.inArray(n,t.onlyColumns)===-1:e.inArray(n,t.ignoreColumns)!==-1},s=function(t,n){var r={};return e.each(n,function(e,n){e<t.length&&(r[t[e]]=n)}),r},o=function(t){var n=[];return e(t).children("td,th").each(function(t,s){if(!i(t)){var o=e(s).data("override"),u=e.trim(e(s).text());n[n.length]=r(o)?o:u}}),n},u=function(e){var n=e.find("tr:first").first();return r(t.headings)?t.headings:o(n)},a=function(n,i){var u=[];return n.children("tbody,*").children("tr").each(function(n,a){if(n!==0||r(t.headings))if(e(a).is(":visible")||!t.ignoreHiddenRows)u[u.length]=s(i,o(a))}),u},f=u(this);return a(this,f)}})(jQuery);
如果有另一种方法可以获取具有 selected 下拉值的 table 数据,请指导我 that.Thank 你。
我不知道这是否会对您有所帮助,或者这可能不是优化的方法,但它可以完成工作。 你不能删除未选择的选项并生成 json.
我添加了一个临时文件 div 并克隆了 table 并添加到其中
<div id="tempdiv" style="visibility:hidden">
$('#datatable').clone().appendTo($("#tempdiv"));
var tempTable=$("#tempdiv").children(0);
var sel = tempTable.find(".currentCulture");
$(sel).children().not("option:selected").remove();
var table = (tempTable).tableToJSON();