最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS實現(xiàn)動態(tài)生成表格并提交表格數(shù)據(jù)向后端

 更新時間:2020年11月25日 10:46:47   作者:根基  
這篇文章主要為大家詳細介紹了JS實現(xiàn)動態(tài)生成表格并提交表格數(shù)據(jù)向后端的相關資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例介紹了JS實現(xiàn)動態(tài)生成表格并向后端提交表格數(shù)據(jù)的相關代碼,分享給大家供大家參考,具體內容如下

先來看一下需求:在web頁面上動態(tài)的生成表格,并可以對表格中的數(shù)據(jù)進行編輯,然后把表格中的數(shù)據(jù)提交至后端服務器保存。

那么我們首先需要解決的是動態(tài)生成表格的問題

1.首先我們需要導入JS庫文件。

<script src="../js/jqui/jquery/jquery-1.5.2.min.js" type="text/javascript"></script>

2.然后在頁面div中事先創(chuàng)建一個空白表格,可以根據(jù)需求而定,我這里是一個帶表頭的表格

<table border="0" style="text-align: center;" width="100%" id="myTable">
 <tr>
 <td width="150px;">表頭1</td>
 <td width="150px;">表頭2</td>
 <td width="150px;">表頭3</td>
 <td width="150px;">表頭4</td>
 <td width="150px;">表頭5</td>
 <td width="150px;">操作</td>
 </tr>
</table>

3.表格創(chuàng)建好后,我們就可以寫動態(tài)生成表格的關鍵代碼了。我們寫一個js方法供觸發(fā)使用

var num = 0;
 function addTable(){
 var tableHtml ="";
 tableHtml += '<tr id="tr'+num+'">'
   +'<td><input class="addtd" id="cnashu1'+num+'" style="width:150px;" type="text" name="cnashu1" /></td>'
   +'<td><input class="addtd" id="cnashu2'+num+'" style="width:150px;" type="text" name="cnashu2"/></td>'
   +'<td><input class="addtd" id="cnashu3'+num+'" style="width:150px;" type="text" name="cnashu3"/></td>'
   +'<td><input class="addtd" id="cnashu4'+num+'" style="width:150px;" type="text" name="cnashu4"/></td>'
   +'<td><input class="addtd" id="cnashu5'+num+'" style="width:150px;" type="text" name="cnashu5"/></td>'
   +'<td><a style="cursor: pointer; color: blue;" onclick="removeTr('+num+')">刪除</a>'
   +'<a id="edit'+num+'" class="edit" style="cursor: pointer; color: blue;" onclick="editDataByOne('+num+')">修改</a>'
   +'<a id="save'+num+'" class="hide" style="cursor: pointer; color: blue;" onclick="saveByOne('+num+')">保存</a>'
   +'</td>'
   +'</tr>';
 
 var elements = $("#myTable").children().length; //表示id為“mtTable”的標簽下的子標簽的個數(shù)
 
 $("#myTable").children().eq(elements - 1).after(tableHtml); //在表頭之后添加空白行
 num++; 
 }

我們可以看到在<tb>標簽中我們添加了<input>標簽,主要是用來提供用戶輸入?yún)?shù), 而全局變量num,主要是用來區(qū)分每一個添加的參數(shù)的id的唯一性而存在的。

4.接下來我們對表格進行操作

//刪除行
function removeTr(trNum){
 $("#tr"+trNum).remove();
}
//編輯行
function editDataByOne(trNum){
 $this = $("#tr"+trNum);
 $(".addtd",$this).removeAttr("readonly");
}
//保存行
function saveByOne(trNum){
 $this = $("#tr"+trNum);
 $(".addtd",$this).attr("readonly","readonly");
}

上面我們對表格進行了刪除,編輯,保存等操作,具體操作內容可以根據(jù)需求調整。(其實后來我發(fā)現(xiàn)可以不需要全局num,也可以實現(xiàn)對添加行的操作,至于怎么實現(xiàn),主要是一些js的操作,有空再研究吧)

至此,我們動態(tài)生成表格的頁面代碼就完結了。
上半篇我們講到了如何動態(tài)生成表格,接下來我們就講一下如何獲取表格中的多條數(shù)據(jù),并提交至后臺服務器。

在開發(fā)之前我也在網上找了一些資料,要么太簡潔,要么看不懂,但是他們大多數(shù)都提到了使用Json的方式將多個參數(shù)傳入后臺,那么我就根據(jù)這個思路編寫了如下的代碼。

1.首先我們來看一下如何獲得表格中的數(shù)據(jù),還是結合上邊的例子

<div>
 <form id="submitForm">
 <table border="0" style="text-align: center;" width="100%" id="myTable">
  <tr>
  <td width="150px;">表頭1</td>
  <td width="150px;">表頭2</td>
  <td width="120px;">表頭3</td>
  <td width="120px;">表頭4</td>
  <td width="80px;">表頭5</td>
  <td width="100px;">操作</td>
  </tr>
 </table>
 </form>
 <input type="button" value="添加" onclick="addTable();">
 <input type="button" value="提交" onclick="save();">
 </div>

我們可以看到在Table標簽的外層我們加了一層form標簽,并設置form標簽的id。

2.接下來我們根據(jù)jQuery的“serialize()”方法獲取表格中input標簽的參數(shù)

var msg = $("#submitForm").serialize(); //獲得后的msg的值:canshu1=xxx&canshu2=xxx&canshu3=xxx&canshu4=xxx&canshu5=xxx

3.拿到表格中的數(shù)據(jù)后,我們根據(jù)它值的形式把它轉換成json格式的數(shù)據(jù)

var json = "[{";
var msg2 = msg.split("&"); //先以“&”符號進行分割,得到一個key=value形式的數(shù)組
var t = false;
for(var i = 0; i<msg2.length; i++){
 var msg3 = msg2[i].split("="); //再以“=”進行分割,得到key,value形式的數(shù)組
 for(var j = 0; j<msg3.length; j++){
 json+="\""+msg3[j]+"\"";
 if(j+1 != msg3.length){
  json+=":";
 }
 if(t){
  json+="}";
  if(i+1 != msg2.length){ //表示是否到了當前行的最后一列
  json+=",{";
  }
  t=false;
 }
 if(msg3[j] == "canshu5"){ //這里的“canshu5”是你的表格的最后一列的input標簽的name值,表示是否到了當前行的最后一個input
  t = true;
 }
 }
 if(!msg2[i].match("canshu5")){ //同上
 json+=";";
 }
   
}
json+="]";
//最終msg的值就被轉換為:[{"key":"value";"key":"value"},{"key":"value";"key":"value"}]格式的json數(shù)據(jù)

通過上述代碼,我們已經成功的將表格中的多條數(shù)據(jù)轉換成了json格式的數(shù)據(jù),那么我們就可以通過ajax的方式將Json數(shù)據(jù)發(fā)送到后臺處理。

至此,我們獲取表格中的多條數(shù)據(jù)并提交至服務器的代碼就編寫完了,希望對大家的學習有所幫助。

相關文章

  • 認識延遲時間為0的setTimeout

    認識延遲時間為0的setTimeout

    由 John Resig 的 How JavaScript Timers Work 可以知道,現(xiàn)有的 JavaScript 引擎是單線程處理任務的。它把任務放到隊列中,不會同步去執(zhí)行,必須在完成一個任務后才開始另外一個任務。
    2008-05-05
  • 淺談Postman解決token傳參的問題

    淺談Postman解決token傳參的問題

    下面小編就為大家分享一篇淺談Postman解決token傳參的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • JS實現(xiàn)二叉查找樹的建立以及一些遍歷方法實現(xiàn)

    JS實現(xiàn)二叉查找樹的建立以及一些遍歷方法實現(xiàn)

    本篇文章主要介紹了JS實現(xiàn)二叉查找樹的建立以及一些遍歷方法實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-04-04
  • jQuery 的 ready()的純js替代方法

    jQuery 的 ready()的純js替代方法

    這篇文章主要介紹了jQuery 的 ready()的純js替代方法的相關資料,需要的朋友可以參考下
    2016-11-11
  • JavaScript中自帶的 reduce()方法使用示例詳解

    JavaScript中自帶的 reduce()方法使用示例詳解

    下文小編給大家?guī)砹薺s中自帶的reduce()方法使用示例詳解,非常不錯,具有參考借鑒價值,感興趣的朋友一起學習吧
    2016-08-08
  • Bootstrap模態(tài)框水平垂直居中與增加拖拽功能

    Bootstrap模態(tài)框水平垂直居中與增加拖拽功能

    最近開發(fā)一個CMS系統(tǒng)使用上了Bootstrap,在開發(fā)一個添加某些選項時,打算彈出一個模態(tài)框,但是發(fā)現(xiàn),模態(tài)框不會垂直居中到屏幕上,而是在屏幕上方,通過查閱資料才解決此問題,下面小編給大家分享解決思路
    2016-11-11
  • flexigrid 參數(shù)說明

    flexigrid 參數(shù)說明

    flexigrid 參數(shù)說明,需要的朋友可以參考下。
    2010-11-11
  • js點擊按鈕實現(xiàn)多張圖片循環(huán)切換

    js點擊按鈕實現(xiàn)多張圖片循環(huán)切換

    這篇文章主要為大家詳細介紹了js點擊按鈕實現(xiàn)多張圖片循環(huán)切換,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Grunt入門教程(自動任務運行器)

    Grunt入門教程(自動任務運行器)

    Grunt是一個自動任務運行器,會按照預先設定的順序自動運行一系列的任務。這可以簡化工作流程,減輕重復性工作帶來的負擔
    2015-08-08
  • js取值中form.all和不加all的區(qū)別介紹

    js取值中form.all和不加all的區(qū)別介紹

    在js里取值,可以用form.xx.value,也可以用form.all.xx.value,那么js取值中form.all和不加all有什么區(qū)別呢?下面就為大家詳細介紹下
    2014-01-01

最新評論

延寿县| 阳高县| 米脂县| 乐至县| 枣阳市| 屏南县| 南溪县| 吉木萨尔县| 周至县| 镶黄旗| 靖江市| 驻马店市| 新竹县| 台南县| 瓮安县| 曲松县| 富蕴县| 龙胜| 石河子市| 武隆县| 县级市| 名山县| 石台县| 神池县| 德钦县| 宝丰县| 天长市| 奉节县| 朔州市| 万宁市| 新余市| 和龙市| 阿勒泰市| 淳安县| 石阡县| 灵丘县| 茂名市| 阜宁县| 金堂县| 淳化县| 调兵山市|