日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ajax form表单提交_LayUI提交表单,监听select,分页组件

發布時間:2024/10/8 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ajax form表单提交_LayUI提交表单,监听select,分页组件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、LayUI提交表單

這幾天做項目,用到提交layui框架的彈出層的表單,因為需要在提交表單后,關閉當前彈出層,同時刷新父窗口的數據,因此,用普通的提交就不行了,因為普通的提交到后臺之后沒有返回值,就無法做到關閉彈出層和刷新父窗口。找了很多方法,包括查看api,找異步提交方法等,都沒有找到合適的方法(也許是我太笨),最后,在小伙伴的幫助下,終于找到了一個好用的方法。在此,對我的小伙伴表示衷心的感謝!

1.1、js文件

jquery.js、layui.js、layer.js

1.2、jsp頁面

提交

表單之間就是各種輸入框,這個大家都懂的,提交按鈕一定要是button,不能是input,否則表單監聽不到提交事件,還有一個要特別注意的地方:由于后臺使用Springmvc接收對象,所以前臺往后臺傳值的時候,json數據中不能有值為空字符串,或值為null的數據,因此,在往后臺傳值前,需要將表單序列化后的數據中,值為空的屬性給剔除。

1.3、js代碼

layui.use(['form','layedit','laydate'],function(){ var form=layui.form ,layer=layui.layer; //監聽提交 form.on('submit(demo1)',function(data){ //獲取表單序列化數據,并將序列化數據轉換為json對象 var params=paramString2obj($('#helpobject_form').serialize()); $.ajax({ type:'post', url:'', contentType:'application/json', cache:false, data:JSON.stringify(params), dataType:'json', success:function(data){ if(null!=data){ if(data=='success'){ layer.msg('添加成功',{icon:1,time:2000},function(){ var index=parent.layer.getFrameIndex(window.name); parent.layer.close(index); window.parent.location.reload();//刷新父窗口 }); }else{ layer.msg('添加失敗'); } } }, error:function(data){ layer.alert(JSON.stringify(data)); } }); return false; });});/*serializedParams格式為"key1=value1&key2=value2".也支持'key.sonkey=value' */function paramString2obj (serializedParams) { var obj={}; function evalThem (str) { var strAry = new Array(); strAry = str.split("="); //使用decodeURIComponent解析uri 組件編碼 for(var i = 0; i < strAry.length; i++){ strAry[i] = decodeURIComponent(strAry[i]); } var attributeName = strAry[0]; var attributeValue = strAry[1].trim(); //如果值中包含"="符號,需要合并值 if(strAry.length > 2){ for(var i = 2;i attributeValue += "="+strAry[i].trim(); } } if(!attributeValue){ return ; } var attriNames = attributeName.split("."), curObj = obj; for(var i = 0; i < (attriNames.length - 1); i++){ curObj[attriNames[i]]?"":(curObj[attriNames[i]] = {}); curObj = curObj[attriNames[i]]; } //使用賦值方式obj[attributeName] = attributeValue.trim();替換 //eval("obj."+attributeName+"=\""+attributeValue.trim()+"\";"); //解決值attributeValue中包含單引號、雙引號時無法處理的問題 curObj[attriNames[i]] = attributeValue.trim(); }; var properties = serializedParams.split("&"); for (var i = 0; i < properties.length; i++) { //處理每一個鍵值對 evalThem(properties[i]); }; return obj;}

1.4、改進

上面的代碼中的序列化form表單的方法有一個bug,那就是會把部分空格給序列化成"+"號,于是又找了另外一種方法。

//監聽表單提交form.on('submit(demo1)',function(data){ var params=deleteEmptyProperty($('#dynamic_form').formatForm()); $.ajax({ type:'post', url:'', contentType:'application/json', cache:false, data:JSON.stringify(params), dataType:'json', success:function(data){}, error:function(data){} }); return false;});//刪除json對象中的屬性值為空字符串、null、undefined的屬性// 支持遞歸刪除,即有些空屬性是由于代碼執行中產生的,這些屬性也要刪除function deleteEmptyProperty(object){ for (var i in object) { var value = object[i]; // sodino.com // console.log('typeof object[' + i + ']', (typeof value)); if (typeof value === 'object') { if (Array.isArray(value)) { if (value.length == 0) { delete object[i]; console.log('delete Array', i); continue; } } deleteEmptyProperty(value); if (isEmpty(value)) { console.log('isEmpty true', i, value); delete object[i]; console.log('delete a empty object'); } } else { if (value === '' || value === null || value === undefined) { delete object[i]; console.log('delete ', i); } else { console.log('check ', i, value); } } } return object;}function isEmpty(object) { for (var name in object) { return false; } return true;}//序列化表單jQuery.prototype.formatForm=function(){ var obj=new Object(); $.each(this.serializeArray(),function(index,param){ if(!(param.name in obj)){ obj[param.name]=param.value; } }); return obj;};

2、LayUI監聽select

在html中用到select都會用到它的change事件,在普通的select中,要監聽select的change事件,直接在js代碼中監聽就可以了,這個so easy!

我要說的是layui框架里面的select的change事件的監聽,layui框架里面的select的change事件的監聽用監聽普通select的change事件的方法是行不通的,不信?你試試!!!

下面,說說layui框架里面的select的change事件的監聽。

2.1、js文件

jquery.js、layui.js

2.2、jsp頁面

2.3、js代碼

layui.use('form', function(){var form = layui.form;//監聽select的改變事件form.on('select(privince)', function(data){ //選擇省,去查詢城市列表 getLocationList(data.value,"nativePlaceCityId"); //重新渲染表單 layui.form.render();})

其中privince是layui中給select定義的一個屬性lay-filter="privince",

通過這種方法就可以監聽到select值的變化,data代表默認選中的那個option,data.value就是select改變后的值。

使用select的最具代表性的操作,就是省市聯動的級聯操作,選擇省之后,動態加載當前選擇省對應的市的列表。

通過ajax獲取市的列表并將值添加到select標簽的做法和普通select操作方法一致,但是在將option添加給select完成后,要特別注意的是需要對表單整體重新渲染:

layui.form.render();

其中render可以指定對應的form的屬性lay-filter值。

3、LayUI分頁組件

3.1、layui的js文件

jquery.js、layui.js

3.2、jsp頁面

3.3、js代碼

function page(helpType,page,pageSize){ $.ajax({ url: '/helpobject/getHelpObjectList', type: 'post', dataType: "json", data: { helpType: helpType, page: page, pageSize: pageSize }, success: function(data){ if(null!=data && data.result.length>0){ //后臺數據返回結果:{"total":10,"result":[]} var tx=""; for(var i=0;i // 做對應業務處理 } $("#xxx").html("").append(tx); //分頁 layui.use('laypage',function(){ var laypage = layui.laypage; laypage.render({ elem: 'demo' ,count: data.total ,limit: pageSize ,curr: page || 1 ,layout: ['count','prev','page','next','limit','skip'] ,jump: function(obj,first){ if(!first){ page(helpType,obj.curr,obj.limit); } } }); }); } }, error: function(data){ alert(JSON.stringify(data)); } });}

效果如下:

總結

以上是生活随笔為你收集整理的ajax form表单提交_LayUI提交表单,监听select,分页组件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 校园春色综合 | 青青草国产在线观看 | 奇米影视在线 | 日本在线免费观看 | 天天爱天天做 | 亚洲综合成人av | 涩涩涩涩av | 日本欧美视频 | 日本激情视频在线观看 | 性xxxxx大片免费视频 | 一级做a爰片久久毛片 | 五月天婷婷激情视频 | 高跟鞋av| a级一片| 欧美成人吸奶水做爰 | 天天干b | 欧美一二区 | 国产久一| 99精品在线视频观看 | 动漫涩涩免费网站在线看 | 干欧美少妇| 欧美bbbbbbbbbbbb精品 | 日日夜夜国产精品 | 免费成人进口网站 | 国产精品成人自拍 | 免费看的黄色小视频 | 色呦呦日韩精品 | 欧美黄视频 | 天堂综合网久久 | 一区二区视频在线观看 | 精品无码国产污污污免费网站 | 日韩精品一区二区三区四区五区 | 亚洲国产精品一区二区久久hs | 黄瓜视频在线免费观看 | 红猫大本营在线观看的 | 姐姐你真棒插曲快来救救我电影 | 国产sss| 国产免费av一区二区 | 影音先锋男人的天堂 | 一区二区三区四区视频在线观看 | www.久久成人 | aa片在线观看视频在线播放 | 欧美日韩激情在线一区二区三区 | 国产探花一区二区 | 青青成人在线 | 精品123区 | 森泽佳奈作品在线观看 | 黄色a级大片 | 在哪看毛片 | 嫩草视频在线免费观看 | 成人免费看视频 | 国产网站免费看 | 女人18毛片一区二区三区 | 中文文字幕一区二区三三 | 成人免费片 | 无码 制服 丝袜 国产 另类 | 国产高潮网站 | 国产一二在线观看 | 手机av免费在线 | 枫花恋在线观看 | 在线中文字幕一区 | 一级视频片 | 久久久久久五月天 | 97人人超 | 久久久久久一区二区 | 欧美日韩字幕 | 91视频免费 | 日日干夜夜操 | 高清av免费 | 中文字幕免费av | 亚州一级 | 亚洲黄色在线观看视频 | 国产免费一区二区 | 严厉高冷老师动漫播放 | 涩视频在线观看 | 日本少妇裸体做爰高潮片 | 久久精品国产亚洲av高清色欲 | 久久最新精品 | 免费播放毛片精品视频 | 国产美女自拍 | 人妻无码中文字幕 | 久久精品国产亚洲av无码娇色 | 国产精品人人爽 | 区一区二区三 | 蜜臀久久精品久久久用户群体 | 日韩超碰在线 | 国产精品美女久久久久av超清 | 久久澡| 激情四射婷婷 | 97人人草 | aaa影院| 亚洲欧洲色图 | 五月婷婷久久综合 | 亚洲一区二区中文字幕 | 黄色片视频播放 | 婷婷天天| 美女色黄网站 | 国产伦子伦对白视频 | 青娱乐在线免费观看 |