JS實現動態生成表格並向后端提交表格數據(一)


  前段時間開發了一些web應用,其中就有涉及到動態的表格問題,因為很久沒有寫web前端了,所以在網上找了一些資料,發現很零碎,於是自己就根據找到的資料寫了這么一個小功能,主要是供自己記憶,如果能幫到你很榮幸,如果你有更好的方法,也可以相互討論,相互學習一下。

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

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

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

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

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

<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.表格創建好后,我們就可以寫動態生成表格的關鍵代碼了。我們寫一個js方法供觸發使用

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”的標簽下的子標簽的個數
        
        $("#myTable").children().eq(elements - 1).after(tableHtml); //在表頭之后添加空白行
        num++;     
    }

我們可以看到在<tb>標簽中我們添加了<input>標簽,主要是用來提供用戶輸入參數, 而全局變量num,主要是用來區分每一個添加的參數的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");
}

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

至此,我們動態生成表格的頁面代碼就完結了。

參考資料:jquery API  http://jquery.cuishifeng.cn/index.html

 

  

 

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM