日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
jQuery實(shí)現(xiàn)表格數(shù)據(jù)的動(dòng)態(tài)添加與統(tǒng)計(jì)

某物流信息系統(tǒng)中的功能要求如圖1.1所示,表格中每一行代表一筆運(yùn)送貨物的信息,在錄入每行的計(jì)費(fèi)重量和費(fèi)率后,要求能按一定的公式,自動(dòng)計(jì)算運(yùn)送費(fèi)用,并且能自動(dòng)統(tǒng)計(jì)所有運(yùn)送貨物的總運(yùn)費(fèi)。運(yùn)送貨物信息的數(shù)據(jù)量(即表格的行數(shù))不定,要求能動(dòng)態(tài)增加、刪除,即表格的數(shù)據(jù)行數(shù)是動(dòng)態(tài)可維護(hù)的。同時(shí)為了方便操作,需要在頁(yè)面中能像使用鍵盤的上下左右方向鍵,在錄入的文本框之間進(jìn)行切換。每行的數(shù)據(jù)有一定的校驗(yàn)要求,比如單號(hào)必須為8位數(shù)字,件數(shù)和重量必須為數(shù)字...

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、武城網(wǎng)絡(luò)推廣、重慶小程序開發(fā)、武城網(wǎng)絡(luò)營(yíng)銷、武城企業(yè)策劃、武城品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供武城建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com

單行貨物信息計(jì)算運(yùn)費(fèi)不難實(shí)現(xiàn),只需要在計(jì)費(fèi)重量和費(fèi)率的文本框?qū)ο蟮膐nblur事件中,得到費(fèi)率和計(jì)費(fèi)重量,按照公式計(jì)算好運(yùn)費(fèi)即可。

總計(jì)費(fèi)用的統(tǒng)計(jì)也不難實(shí)現(xiàn),遍歷整個(gè)表格的所有費(fèi)用對(duì)象,統(tǒng)計(jì)其和,將計(jì)算結(jié)果放到總計(jì)的文本框?qū)ο蠹纯伞?/p>

難點(diǎn)在動(dòng)態(tài)添加整行表格數(shù)據(jù),而且每行數(shù)據(jù)上的各文本框?qū)ο蟮氖录惨獙?shí)現(xiàn)自動(dòng)統(tǒng)計(jì)和運(yùn)算,有相當(dāng)?shù)碾y度。如果使用JavaScript需要調(diào)用Dom對(duì)象創(chuàng)建一個(gè)單元格,還需要在tr里面添加10多個(gè)單元格對(duì)象,每個(gè)單元格對(duì)象內(nèi)要添加文本框?qū)ο?還需要在文本框?qū)ο笊享憫?yīng)onblur事件進(jìn)行運(yùn)費(fèi)計(jì)算,代碼量相當(dāng)大。

使用jQuery可以大大減輕工作量,在實(shí)際開發(fā)中,使用了jQuery的clone(true)函數(shù),該函數(shù)可以創(chuàng)建一個(gè)jQury對(duì)象的副本,并且參數(shù)為true時(shí),可以復(fù)制該元素的所有事件處理函數(shù)。

我們可以在***行中實(shí)現(xiàn)計(jì)算運(yùn)費(fèi)的運(yùn)算。然后點(diǎn)增加明細(xì)按鈕時(shí),調(diào)用jQuery 的clone(true)函數(shù),建立***行的副本對(duì)象插入到表格下方,由于使用clone(true)可以復(fù)制對(duì)象的事件處理函數(shù),所以每行中文本框的onblur事件和運(yùn)費(fèi)計(jì)算函數(shù)也被成功復(fù)制,不需再做處理。大大減輕了工作量。

關(guān)鍵代碼

(一)創(chuàng)建克隆單元格對(duì)象并添加到表格中

 
 
 
 
  1. var v=$("#tbin");//得到表格的jquery對(duì)象   
  2. //所有的數(shù)據(jù)行有一個(gè).MyRow的Class,得到數(shù)據(jù)行的大小  
  3. var vcount=$("#tbin tr").filter(".MyRow").size()+1;  
  4. //表格有多少個(gè)數(shù)據(jù)行    
  5. var vTr=$("#tbin #trDataRow1");  
  6.  //得到表格中的***行數(shù)據(jù)      
  7. var vTrClone=vTr.clone(true);//創(chuàng)建***行的副本對(duì)象vTrClone  
  8. vTrClone.appendTo(v);//把副本單元格對(duì)象添加到表格下方 

(二)統(tǒng)計(jì)更新總金額

 
 
 
 
  1. function UpdateTotal()//更新總金額  
  2.       {  
  3.         var vTotalMoney=0;//總金額的初始值為0;              
  4.         var vTable=$("#tbin");//得到表格的jquery對(duì)象      
  5.          var vTotal= vTable.find("#txtTotal") ;//得到總金額對(duì)象  
  6.          var vtxtAfters=vTable.find("#txtMoney");//得到所有計(jì)算好的費(fèi)用對(duì)象;  
  7.         vtxtAfters.each(   //使用jQuery的each函數(shù)遍歷每行費(fèi)用對(duì)象,累加成總金額  
  8.             function(i)  
  9.             {  
  10.             var vTempValue=$(this).val();  
  11.                 if(vTempValue=="")  
  12.                 {  
  13.                     vTempValue=0;  
  14.                 }  
  15.             vTotalMoney=vTotalMoney+parseFloat(vTempValue);//計(jì)算總費(fèi)用  
  16.             }  
  17.         )//遍歷結(jié)束  
  18.          vTotal.val(vTotalMoney); //將總費(fèi)用顯示到對(duì)應(yīng)文本框?qū)ο笾? 
  19.       }     

(三)計(jì)費(fèi)重量變化時(shí)計(jì)算費(fèi)用,并統(tǒng)計(jì)總費(fèi)用

 
 
 
 
  1.  $("#txtMoneyWeight").bind("change", function()  
  2.         {  
  3.         var vTotalMoney=0;//總金額的初始值為0;     
  4.         var vtxtDetail=$(this);//得到變化的文本框?qū)ο?nbsp;      
  5.          var vVal=vtxtDetail.val();              
  6. var vtxtAfter=vtxtDetail.parent("td").parent("tr").find("#txtRate");  
  7.         //得到費(fèi)率;  
  8. var vtxtMoney=vtxtDetail.parent("td").parent("tr").find("#txtMoney");  
  9. //得到費(fèi)用;     
  10.  var vMoney=CalculatorMoney(vVal,vtxtAfter.val());  
  11. //使用公式計(jì)算單行運(yùn)費(fèi)   
  12.  vtxtMoney.val(vMoney);   
  13. //顯示單行運(yùn)費(fèi)信息         
  14. UpdateTotal();   //調(diào)用函數(shù)統(tǒng)計(jì)更新總費(fèi)用  
  15.   }); //變化腳本結(jié)束 

鍵盤的控制和數(shù)據(jù)的校驗(yàn)在源程序中有詳細(xì)注釋,具體代碼可參考源程序。

原文鏈接:http://www.cnblogs.com/l_dragon/archive/2011/01/26/1945020.html


網(wǎng)站題目:jQuery實(shí)現(xiàn)表格數(shù)據(jù)的動(dòng)態(tài)添加與統(tǒng)計(jì)
當(dāng)前URL:http://www.5511xx.com/article/dhoecss.html