亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

jQuery實現表單動態加減、ajax表單提交功能

2019-11-19 13:41:05
字體:
來源:轉載
供稿:網友

對于前端開發,我的歸類是分2種層次,首先第一種是基于前端架構上的開發,有一些后臺開發的同事會瞧不起搞前端的,他們認為前端無非是畫個頁面嘛,這就有點夜郎自大了?,F在我了解的一些前端框架基本分為3個主流框架:ReactJs,Vue,angularjs,前兩個還是目前的主流趨勢。第二種就是基于市面上的一些非主流工具包,比如BUI,FLatUI等,再結合自己的dom操作。

好了,廢話不多說了,本篇文章主要講怎么去實現表單動態加減的效果,花了一天時間搞出來,特來分享一下。本文主要分為兩部分: 一是頁面表單動態加減實現,二是復雜表單項提交到controller層。

一、表單動態加減的實現

1.頁面效果如下,第一個新增按鈕增加的是,費用類型1和資金賬戶名稱橫向兩欄這塊,就稱為Div塊吧,第二個新增按鈕增加的是,資金賬戶名稱橫向一欄,稱為sonDiv塊吧。第二個費用類型1和以下是新增出來的,所以顯示是刪除按鈕,同樣第二個資金賬戶名稱也是新增出來的,所以也顯示刪除按鈕。

2.代碼片段,html部分如下(用的BUI)

<div class="panel" style="margin-bottom: 10px;">  <div class="panel-body">   <form id="J_Form" class="form-horizontal" action="" method="get">     <div class="row-fluid">     <div class="control-group span6">      <label class="control-label"><s>*</s>產品名稱</label>      <div class="controls">      <select id="prodName" name="prodName" class="input-normal data-messages="{required:'產品名稱'}" data-rules="{required:true}" >       <option value="">請選擇</option>       <option value="大毛貸">大毛貸</option>       <option value="老子貸">老子貸</option>      </select>      </div>     </div>     <div class="control-group span6">      <label class="control-label"><s>*</s>子產品名稱</label>      <div class="controls">      <select id="subProdName" name="subProdName" class="input-normal data-messages="{required:'子產品名稱'}" data-rules="{required:true}" >       <option value="">請選擇</option>       <option value="小毛貸">小毛貸</option>       <option value="小子貸">小子貸</option>      </select>      </div>     </div>    </div>     <div class="row-fluid">     <hr style="height:1px;padding-bottom:20px;margin:0 auto;filter:alpha(opacity:30);opacity:0.5;border:none;border-top:1px solid #778899;"/>    </div>    <div id="div1" class="div1 row-fluid">     <div class="row-fluid">      <div class="control-group span6">      <label class="control-label"><s>*</s>費用類型1</label>      <div class="controls">      <select id="feeType1" name="feeType1" class="input-normal data-messages="{required:'費用類型1'}" data-rules="{required:true}" >       <option value="">請選擇</option>       <option value="放款">放款</option>       <option value="保費">保費</option>      </select>      </div>      </div>      <input id="div1BtnAdd" type="button" value="新增" class="button button-submit">     </div>     <div id="subDiv1" class="subDiv1 row-fluid">      <div class="control-group span6">      <label class="control-label"><s>*</s>資金賬戶名稱</label>      <div class="controls">      <select id="fundName" name="fundName" class="input-normal data-messages="{required:'資金賬戶名稱'}" data-rules="{required:true}" >       <option value="">請選擇</option>       <option value="XX保證金">XX保證金</option>       <option value="XX儲備金">XX儲備金</option>      </select>      </div>      </div>      <div class="control-group span6">      <label class="control-label"><s>*</s>方向</label>      <div class="controls">      <select id="dest" name="dest" class="input-normal data-messages="{required:'方向'}" data-rules="{required:true}" >       <option value="">請選擇</option>       <option value="調增">調增</option>       <option value="調減">調減</option>      </select>      </div>      </div>      <div class="control-group span6">      <label class="control-label"><s>*</s>交易類型</label>      <div class="controls">      <select id="transType" name="transType" class="input-normal data-messages="{required:'交易類型'}" data-rules="{required:true}" >       <option value="">請選擇</option>       <option value="提現">提現</option>       <option value="保證金繳保費">保證金繳保費</option>      </select>      </div>      </div>      <button id="subDiv1BtnAdd" type="button" onclick="addSubDiv1($(this))" class="button button-submit">新增</button>     </div>    </div>   </form>  </div>  <div class="row-fluid">   <div class="form-actions">    <button type="button" id="btnSubmit" class="button button-submit">提交</button>    <button type="button" id="btnback" class="button button-back "><span class="span-back">返回</span></button>   </div>  </div> </div>

    JS代碼部分:

//div1模塊添加  $('#div1BtnAdd').on('click', function() {   var div1 = $('#div1').clone(true);   // div1.find("input[id='div1BtnAdd']").attr("value","刪除");   // div1.find("input[id='div1BtnAdd']").attr("onclick","deleteParent($(this))");   // div1.find("input[id='div1BtnAdd']").removeAttr("id");   div1.find("input[id='div1BtnAdd']").replaceWith('<input type="button" value="刪除" class="button button-submit" onclick="deleteDiv1($(this))" >');   div1.appendTo('#J_Form');  });  //div1子模塊行添加  function addSubDiv1(obj){   var subDiv1 = $('#subDiv1').clone(true);   subDiv1.find("button[id='subDiv1BtnAdd']").remove();   subDiv1.append('<input type="button" value="刪除" class="button button-submit" onclick="deleteSubDiv1($(this))" >').appendTo(obj.parents('#subDiv1').parents('#div1'));  }  //div1子模塊行添加  /** $('#subDiv1BtnAdd').on('click', function() {   var subDiv1 = $('#subDiv1').clone(true);   subDiv1.find("button[id='subDiv1BtnAdd']").remove()   subDiv1.append('<input type="button" value="刪除" class="button button-submit" onclick="deleteSubDiv1($(this))" >').appendTo('#div1');  });  */  function deleteDiv1(obj){   obj.parents('#div1').remove();  }  function deleteSubDiv1(obj){   obj.parents('#subDiv1').remove();  }

頁面展示部分效果基本完成,其中有部分代碼注釋的,那是我調試的代碼,可以忽略,雖然不對,但可以作為糾錯參考,可以想想為啥不對。

二、復雜表單項提交到controller

接著上面,頁面展示好了,后面要做的就是把表單內容提交到后臺,后臺我用的是springMvc接收的,直接看代碼吧

JS部分:

//var obj = $("#J_Form").serialize();  $("#btnSubmit").click(function(){   var prodName = $("#J_Form").find("select[name='prodName']").val();   var subProdName = $("#J_Form").find("select[name='subProdName']").val();   var div1Arr = new Array();    var obj = new Object();   $('.div1').each(function(){ //循環div1    var div1=$(this);    var feeType1Var = div1.find("select[name='feeType1']").val();    div1.find('.subDiv1').each(function(){ //循環subDiv1     var subDiv1=$(this);     var obj = new Object();     obj.feeType = feeType1Var;     obj.repayWay = 0;     obj.fundName = subDiv1.find("select[name='fundName']").val();     obj.dest = subDiv1.find("select[name='dest']").val();     obj.transType = subDiv1.find("select[name='transType']").val();     div1Arr.push(JSON.stringify(obj));    });   })   $.ajax({    type : 'POST',    traditional:true,//防止深度序列化    cache:false,    async:false,    dataType : 'json',    url : '/fundAcct/menu/addFundConfigToDB',    data : {     "prodName" : prodName,     "subProdName" : subProdName,     "dataArr" :div1Arr    },    success : function(data) {     if (data.msg=='success') {      BUI.Message.Alert("success", "success");      // 刷新頁面     } else {      BUI.Message.Alert("error:系統異常", "error");     }    },    error : function(data) {     BUI.Message.Alert("error:系統異常", "error");    }   });  });

后臺Controller部分:

@RequestMapping("/addFundConfigToDB") @ResponseBody public JSONObject modifyTransCodeToDB(HttpServletRequest request, Map<String, Object> model) {  //log.info("交易類型--------------------修改落庫DB");  JSONObject json = new JSONObject();  Map<String, String[]> webParaMap = request.getParameterMap();  String dataArry[] = webParaMap.get("dataArr");// TODO parse to Object  String prodName = webParaMap.get("prodName")[0];  String subProdName = webParaMap.get("subProdName")[0];  String userName = null;  if (null != SsoSession.getCurrentUser(request)) {   userName = SsoSession.getCurrentUser(request).getName();  }  //log.info("修改交易類型,id = {},名稱 = {},當前用戶 ={}", id, transName, userName);  if (dataArry.length > 1) {   json.put("msg", "success");    return json;  } else {   json.put("msg", "fail");    return json;  } }

總結

以上所述是小編給大家介紹的jQuery實現表單動態加減、ajax表單提交功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91免费版网站入口| 国产91网红主播在线观看| 国产欧美精品xxxx另类| 欧美理论片在线观看| 国产精品国产福利国产秒拍| 日韩精品在线免费观看视频| 91精品久久久久久| 亚洲第一男人天堂| 精品国产一区二区三区久久久| 国产z一区二区三区| 亚洲一区美女视频在线观看免费| 国产欧美va欧美va香蕉在| 久久久久久久久国产精品| 国产亚洲免费的视频看| 疯狂欧美牲乱大交777| 国产日韩在线观看av| 久久人人爽人人爽人人片av高清| 国产精品极品美女在线观看免费| 色综合天天狠天天透天天伊人| 91日本视频在线| 538国产精品一区二区免费视频| 毛片精品免费在线观看| 欧美在线观看网站| 日韩一区视频在线| 亚洲国产精品成人精品| 中日韩美女免费视频网址在线观看| 国产成人a亚洲精品| 久久噜噜噜精品国产亚洲综合| 亚洲精品欧美一区二区三区| 国产精品丝袜一区二区三区| 日韩精品亚洲元码| 亚洲成人教育av| 91国在线精品国内播放| 成人av资源在线播放| 精品国产区一区二区三区在线观看| 国产成人福利视频| 欧美日韩中文字幕在线视频| 欧美性猛交xxxxx水多| 欧美成人亚洲成人日韩成人| 亚洲国产欧美一区二区丝袜黑人| 久久精品国产欧美亚洲人人爽| 国产网站欧美日韩免费精品在线观看| 国产91色在线播放| 亚洲的天堂在线中文字幕| 一本色道久久综合狠狠躁篇的优点| 97高清免费视频| 日本一区二区三区四区视频| www国产亚洲精品久久网站| 日韩理论片久久| 亚洲在线观看视频| 日韩国产一区三区| 6080yy精品一区二区三区| 亚洲美女黄色片| 亚洲精品一区在线观看香蕉| 久久久国产91| 欧美激情手机在线视频| y97精品国产97久久久久久| 欧美激情性做爰免费视频| 91久久久久久久久久久| 亚洲自拍在线观看| 久久精品亚洲94久久精品| 国产福利精品av综合导导航| 日本一区二区在线播放| 久久全国免费视频| 美女黄色丝袜一区| 激情av一区二区| 九九久久综合网站| 欧美性受xxx| 欧美日韩国产一中文字不卡| 亚洲国产高清高潮精品美女| 4p变态网欧美系列| 98视频在线噜噜噜国产| 中文字幕日韩av| 久久久电影免费观看完整版| 欧美激情久久久久久| 亚洲国产精品资源| 国产精品精品视频一区二区三区| 97在线观看免费高清| 亚洲一区二区久久久久久久| 亚洲福利小视频| 亚洲欧美日韩中文在线制服| 亚洲999一在线观看www| 日韩电影免费观看在线| 国产精品久久久久影院日本| 91久久精品一区| 国产日韩在线视频| 欧美精品videos性欧美| 亚洲色图在线观看| 亚洲午夜精品久久久久久久久久久久| 精品无人国产偷自产在线| 精品久久久久久电影| 久久久www成人免费精品张筱雨| 欧美性受xxxx白人性爽| 国产精欧美一区二区三区| 久久夜色精品国产欧美乱| 中日韩午夜理伦电影免费| 欧美午夜精品久久久久久浪潮| 欧美孕妇孕交黑巨大网站| 欧美黑人巨大xxx极品| 亚洲色图17p| 亚洲免费一在线| 日韩在线免费av| 国产精品欧美日韩久久| 亚洲视频欧洲视频| 成人免费淫片视频软件| 最新国产成人av网站网址麻豆| 欧美日韩免费在线观看| 91影视免费在线观看| 一色桃子一区二区| 欧美激情xxxx| 欧美做爰性生交视频| 日韩精品中文字幕有码专区| 国内外成人免费激情在线视频网站| 久久久久国产一区二区三区| 久久99精品国产99久久6尤物| 亚洲国产精品va| www.xxxx欧美| 日韩欧美精品网址| 日韩精品亚洲元码| 性欧美长视频免费观看不卡| 国产成人av网址| 精品亚洲国产视频| 日韩亚洲国产中文字幕| 亚洲黄页网在线观看| 亚洲精品suv精品一区二区| 粗暴蹂躏中文一区二区三区| 日韩av一卡二卡| 97人人爽人人喊人人模波多| 97精品国产97久久久久久春色| 最新中文字幕亚洲| 这里只有精品在线观看| 91免费看国产| 成人羞羞国产免费| 欧美日韩另类字幕中文| 亚洲乱码国产乱码精品精| 亚洲福利视频网站| 精品久久久在线观看| 亚洲国产精品久久久久秋霞不卡| 欧美亚洲视频一区二区| 日韩av影片在线观看| 日本国产高清不卡| 欧美成人午夜视频| 国产69精品99久久久久久宅男| 8x拔播拔播x8国产精品| 亚洲免费视频一区二区| 久久久久久国产精品三级玉女聊斋| 成人亚洲欧美一区二区三区| 国产日韩欧美日韩| 欧美老女人性生活| 国产欧美一区二区白浆黑人| 欧美电影在线观看完整版| 欧美日韩亚洲国产一区| 中文字幕在线精品| 91麻豆国产语对白在线观看| 久久人人爽人人爽人人片av高请| 国产视频精品xxxx| 国色天香2019中文字幕在线观看| 国产亚洲成av人片在线观看桃| 精品日韩视频在线观看| 成人亚洲综合色就1024| 欧美中文字幕精品| 国产精品久久中文| 欧美日韩国产一区二区| 国产成人精品一区二区|