欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

1.首先我們需要導(dǎo)入JS庫(kù)文件。

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

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

<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)建好后,我們就可以寫(xiě)動(dòng)態(tài)生成表格的關(guān)鍵代碼了。我們寫(xiě)一個(gè)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”的標(biāo)簽下的子標(biāo)簽的個(gè)數(shù)
 
 $("#myTable").children().eq(elements - 1).after(tableHtml); //在表頭之后添加空白行
 num++; 
 }

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

4.接下來(lái)我們對(duì)表格進(jìn)行操作

//刪除行
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");
}

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

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

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

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

<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標(biāo)簽的外層我們加了一層form標(biāo)簽,并設(shè)置form標(biāo)簽的id。

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

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

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

var json = "[{";
var msg2 = msg.split("&"); //先以“&”符號(hào)進(jìn)行分割,得到一個(gè)key=value形式的數(shù)組
var t = false;
for(var i = 0; i<msg2.length; i++){
 var msg3 = msg2[i].split("="); //再以“=”進(jìn)行分割,得到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){ //表示是否到了當(dāng)前行的最后一列
  json+=",{";
  }
  t=false;
 }
 if(msg3[j] == "canshu5"){ //這里的“canshu5”是你的表格的最后一列的input標(biāo)簽的name值,表示是否到了當(dāng)前行的最后一個(gè)input
  t = true;
 }
 }
 if(!msg2[i].match("canshu5")){ //同上
 json+=";";
 }
   
}
json+="]";
//最終msg的值就被轉(zhuǎn)換為:[{"key":"value";"key":"value"},{"key":"value";"key":"value"}]格式的json數(shù)據(jù)

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

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

相關(guān)文章

  • JavaScript使用Ajax上傳文件的示例代碼

    JavaScript使用Ajax上傳文件的示例代碼

    本篇文章主要介紹了JavaScript使用Ajax上傳文件的示例代碼,詳細(xì)的介紹了兩種上傳方式,感興趣的小伙伴可以了解一下
    2017-08-08
  • js檢查是否關(guān)閉瀏覽器的方法

    js檢查是否關(guān)閉瀏覽器的方法

    這篇文章主要介紹了js檢查是否關(guān)閉瀏覽器的方法,涉及javascript針對(duì)窗口事件的判定與操作相關(guān)技巧,需要的朋友可以參考下
    2016-08-08
  • Java 生成隨機(jī)字符的示例代碼

    Java 生成隨機(jī)字符的示例代碼

    這篇文章主要介紹了Java 生成隨機(jī)字符的示例代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • 用javascript獲取任意顏色的更亮或更暗顏色值示例代碼

    用javascript獲取任意顏色的更亮或更暗顏色值示例代碼

    最近在工作中遇到的一個(gè)需求,發(fā)現(xiàn)網(wǎng)上沒(méi)有相對(duì)應(yīng)的解決方法,索性自己寫(xiě)一個(gè),所以這篇文章主要給大家介紹了關(guān)于利用javascript獲取任意顏色更亮或更暗顏色值的相關(guān)資料,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-07-07
  • JS實(shí)現(xiàn)獲取毫秒值及轉(zhuǎn)換成年月日時(shí)分秒的方法

    JS實(shí)現(xiàn)獲取毫秒值及轉(zhuǎn)換成年月日時(shí)分秒的方法

    這篇文章主要介紹了JS實(shí)現(xiàn)獲取毫秒值及轉(zhuǎn)換成年月日時(shí)分秒的方法,結(jié)合實(shí)例形式分析了javascript常見(jiàn)的Date()日期時(shí)間獲取、轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08
  • javascript replace方法與正則表達(dá)式

    javascript replace方法與正則表達(dá)式

    replace方法的語(yǔ)法是:stringObj.replace(rgExp, replaceText) 其中stringObj是字符串(string),reExp可以是正則表達(dá)式對(duì)象(RegExp)也可以是字符串(string),replaceText是替代查找到的字符串。。為了幫助大家更好的理解,下面舉個(gè)簡(jiǎn)單例子說(shuō)明一下
    2008-02-02
  • JavaScript 判斷瀏覽器是否支持SVG的代碼

    JavaScript 判斷瀏覽器是否支持SVG的代碼

    SVG(可縮放矢量圖形),接下來(lái)將介紹下如何判斷瀏覽器是否支持SVG,感興趣的朋友可以參考下哈,希望本代碼對(duì)你有所幫助
    2013-03-03
  • TypeScript中的類

    TypeScript中的類

    這篇文章主要介紹了TypeScript中的類,類這個(gè)概念基本是所有面向?qū)ο缶幊陶Z(yǔ)言都具有一個(gè)概念,JavaScript中ES6?之前是沒(méi)有類這個(gè)概念,下面文章圍繞TypeScript類的相關(guān)資料展開(kāi)內(nèi)容,需要的朋友可以參考一下
    2021-12-12
  • javascript實(shí)現(xiàn)動(dòng)態(tài)模態(tài)綁定grid過(guò)程代碼

    javascript實(shí)現(xiàn)動(dòng)態(tài)模態(tài)綁定grid過(guò)程代碼

    這篇文章主要分享javascript實(shí)現(xiàn)動(dòng)態(tài)模態(tài)綁定grid過(guò)程代碼,比較實(shí)用,需要的朋友可以參考下
    2014-09-09
  • JS區(qū)分Object與Aarry的六種方法總結(jié)

    JS區(qū)分Object與Aarry的六種方法總結(jié)

    下面小編就為大家?guī)?lái)一篇JS區(qū)分Object與Aarry的六種方法總結(jié)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02

最新評(píng)論