jQuery實(shí)現(xiàn)可編輯表格并生成json結(jié)果(實(shí)例代碼)
實(shí)現(xiàn)效果如下,在編輯表格的同時(shí)可以實(shí)現(xiàn)字段json內(nèi)容的自動(dòng)變化,點(diǎn)擊提交可以保存到后臺(tái),頁(yè)面加載的時(shí)候自動(dòng)解析json并加載表格內(nèi)容。該代碼解析和加載功能都用前端js實(shí)現(xiàn),簡(jiǎn)化了后臺(tái)代碼邏輯。

定義要操作的表格頭:
<input readonly="readonly" class="form-control" type="text" id="scorerange" value="" name="scorerange"/>
<table id="mytable">
<tr>
<th style="width: 20%;">分?jǐn)?shù)區(qū)間</th><th style="width:20%;">等級(jí)</th><th style="width:60%;">建議內(nèi)容</th><th></th>
</tr>
<!-- <tr><td><input onblur="caljson()" type="text" style="width: 50px;" >-<input type="text" style="width: 50px;" /></td>
<td><input onblur="caljson()" type="text" style="width: 100%;" ></td>
<td><input onblur="caljson()" id="btn1" type="button" onclick="$(this).parent().parent().remove()" value="刪除" /></td></tr> --> </table>
定義操作代碼
function insertRowLast(newrow,s1,s2,s3,s4) {
if(newrow){
var newRow = "<tr><td><input onblur=\"caljson()\" value=\"0\" type=\"text\" style=\"width: 50px;\" >-<input value=\"0\" type=\"text\" style=\"width: 50px;\" /></td>";
newRow+="<td><input onblur=\"caljson()\" type=\"text\" style=\"width: 50px;\" ></td>";
newRow+="<td><input maxlength=\"24\" onblur=\"caljson()\" type=\"text\" style=\"width: 100%;\" ></td>";
newRow+="<td><input onblur=\"caljson()\" id=\"btn1\" type=\"button\" onclick=\"$(this).parent().parent().remove();caljson();\" value=\"刪除\" /></td></tr>";
$("#mytable tr:last").after(newRow);
}else{
var newRow = "<tr><td><input value=\""+s1+"\" onblur=\"caljson()\" type=\"text\" style=\"width: 50px;\" >-<input value=\""+s2+"\" type=\"text\" style=\"width: 50px;\" /></td>";
newRow+="<td><input value=\""+s4+"\" onblur=\"caljson()\" type=\"text\" style=\"width: 50px;\" ></td>";
newRow+="<td><input maxlength=\"24\" value=\""+s3+"\" onblur=\"caljson()\" type=\"text\" style=\"width: 100%;\" ></td>";
newRow+="<td><input onblur=\"caljson()\" id=\"btn1\" type=\"button\" onclick=\"$(this).parent().parent().remove();caljson();\" value=\"刪除\" /></td></tr>";
$("#mytable tr:last").after(newRow);
}
caljson();
}
var json="";
function caljson(){
json="{\"scorerange\":[";
var idx = 0;
var idxlen = $("#mytable").find("tr").length;
$("#mytable").find("tr").each(function () {
if(idx==0){
idx++;
return;
}
var tdArr = $(this).children();
var v1 = tdArr.eq(0).find('input').eq(0).val();
var v2 = tdArr.eq(0).find('input').eq(1).val();
var v3 = tdArr.eq(2).find('input').val();
var v4 = tdArr.eq(1).find('input').val();
json+="{\"s1\":\""+v1+"\",\"s2\":\""+v2+"\",\"content\":\""+v3+"\",\"classg\":\""+v4+"\"}";
idx++;
if(idx!=idxlen){
json+=",";
}
});
json+="]}";
$("#scorerange").val(json);
//alert($("#scorerange").val());
}
//alert(1);
//alert($("#scorerange").val());
var dataObj=eval("($!{tbscence.scorerange})");
if(dataObj && dataObj.scorerange){
//alert(dataObj.scorerange.length);
for(var i=0;i<dataObj.scorerange.length;i++){
var s1 = dataObj.scorerange[i].s1;
var s2 = dataObj.scorerange[i].s2;
var s3 = dataObj.scorerange[i].content;
var s4 = dataObj.scorerange[i].classg;
//alert(s1+" "+s2+" "+s3);
insertRowLast(false,s1,s2,s3,s4);
}
}else{
insertRowLast(true,0,0,0,0);
}
總結(jié)
以上所述是小編給大家介紹的jQuery實(shí)現(xiàn)可編輯表格并生成json結(jié)果(實(shí)例代碼),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Vue.js實(shí)現(xiàn)可編輯的表格
- angularjs實(shí)現(xiàn)table表格td單元格單擊變輸入框/可編輯狀態(tài)示例
- vuejs+element UI點(diǎn)擊編輯表格某一行時(shí)獲取內(nèi)容填入表單的示例
- 使用JavaScript實(shí)現(xiàn)表格編輯器(實(shí)例講解)
- JS表格組件BootstrapTable行內(nèi)編輯解決方案x-editable
- JavaScript簡(jiǎn)單表格編輯功能實(shí)現(xiàn)方法
- javascript實(shí)現(xiàn)表格排序 編輯 拖拽 縮放
- 百度編輯器從Json對(duì)象中取值,完成初次渲染,在編輯器內(nèi)畫表格
- editable.js 基于jquery的表格的編輯插件
- js+Html實(shí)現(xiàn)表格可編輯操作
相關(guān)文章
為jQuery-easyui的tab組件添加右鍵菜單功能的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇為jQuery-easyui的tab組件添加右鍵菜單功能的簡(jiǎn)單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10
jQuery實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊處心形漂浮的炫酷效果示例
這篇文章主要介紹了jQuery實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊處心形漂浮的炫酷效果,涉及jQuery事件響應(yīng)及頁(yè)面元素屬性動(dòng)態(tài)變換相關(guān)操作技巧,需要的朋友可以參考下2018-04-04
jquery中ajax調(diào)用json數(shù)據(jù)的使用說(shuō)明
jquery里提供了便捷的ajax運(yùn)用,下面總結(jié)我自己的一些經(jīng)驗(yàn)2011-03-03
兩個(gè)select之間option的互相添加操作(jquery實(shí)現(xiàn))
兩個(gè)select,將其中一個(gè)select選中的選項(xiàng)添加到另一個(gè)select中,或者點(diǎn)擊全部添加按鈕將所有的option都添加過(guò)去.2009-11-11
jquery.Callbacks的實(shí)現(xiàn)詳解
這篇文章主要給大家介紹的是jQuery.Callback()的實(shí)現(xiàn),這個(gè)函數(shù)常見的應(yīng)用場(chǎng)景是事件觸發(fā)機(jī)制,也就是設(shè)計(jì)模式中的觀察者(發(fā)布、訂閱機(jī)制),目前Callbacks對(duì)象用于queue、ajax、Deferred對(duì)象中,下面通過(guò)這篇文章來(lái)詳細(xì)看看關(guān)于jquery.Callbacks實(shí)現(xiàn)的介紹吧。2016-11-11
jQuery中serializeArray()與serialize()的區(qū)別實(shí)例分析
這篇文章主要介紹了jQuery中serializeArray()與serialize()的區(qū)別,結(jié)合實(shí)例形式分析了jQuery中serializeArray()與serialize()的具體功能、使用技巧與用法區(qū)別,需要的朋友可以參考下2015-12-12

