解决ajaxSubmit无法传递自动回填和下拉框的数据
前言:
前段時間遇到個問題:那就是我使用ajaxSubmit時,明明控制臺拿到數(shù)據(jù)了,但后臺卻沒有拿到數(shù)據(jù),導(dǎo)致我那條數(shù)據(jù)雖然新增成功,但是那條數(shù)據(jù)的自動回填和下拉框的卻沒有數(shù)據(jù),其它的確有。后面又換成了post請求后,那條數(shù)據(jù)的自動回填和下拉框的卻有數(shù)據(jù)。搞到這里我就很奇怪為啥ajaxSubmit會拿不到數(shù)據(jù)且我著實(shí)不想寫post請求(因?yàn)閜ost請求新增和修改不能共用一個模態(tài)框,所以就去研究了一下)。
上圖中的模態(tài)框中有類別編號,這個值是自動回填的,還有著需要服務(wù)生服務(wù)的下拉框,雖然我這里的下拉框是前端頁面寫的數(shù)據(jù),但是其實(shí)這兩個字段不能拿到數(shù)據(jù)都是同一個問題。當(dāng)我新增的時候,后臺拿到的數(shù)據(jù)就只有這么一點(diǎn):
從上圖中我們可以看到只拿到倆個值(commoditycategoryid是新增這個條數(shù)據(jù)的主鍵,不管你是否新增成功,你都看不到這個數(shù)據(jù)),可以看到后臺只拿到commoditycategory(商品類別),needartificialservice(需要服務(wù)生服務(wù),因?yàn)槲疫@里是前端頁面寫進(jìn)去的數(shù)據(jù),所以能拿到,如果是從數(shù)據(jù)庫中寫進(jìn)去的數(shù)據(jù)的,也無需慌張,因?yàn)槎际且粯拥慕鉀Q方法)兩條數(shù)據(jù),還差categorynumber(類別編號),既然已經(jīng)找到問題所在,那么我們怎么解決ajaxSubmit傳遞不到后臺的問題,其實(shí)ajaxSubmit有另一個傳遞參數(shù)的方法,那就是data,不過data最好只寫傳遞不過去的參數(shù),因?yàn)閍jaxSubmit本身就能傳遞參數(shù),你寫data又全部傳一次的話,那就會出現(xiàn)重復(fù)傳參。下面將我解決的代碼給大家參考:
//保存數(shù)據(jù)function saveCommoditycategory(){//獲取頁面數(shù)據(jù)var commoditycategoryid = $("#formCommoditycategory [name='commoditycategoryid']").val();//主鍵idvar categorynumber = $("#formCommoditycategory [name='categorynumber']").val();//類別編號var commoditycategory = $("#formCommoditycategory [name='commoditycategory']").val();//商品類別//數(shù)據(jù)庫中的0--->false--->不需要//數(shù)據(jù)庫中的1--->true --->需要var needartificialservice = $("#DDCCneedartificialservice").val();//是否需要服務(wù)生服務(wù)//數(shù)據(jù)完整性驗(yàn)證if (strValIsNotNull(categorynumber) && strValIsNotNull(commoditycategory) && (needartificialservice == 1 || needartificialservice == 0)) {//打開加載層var layIndex = layer.load()//提交表單//ajaxSubmit()提交表單:我們直接通過form提交的話,提交后當(dāng)前頁面跳轉(zhuǎn)到form的action所指向的頁面。//然而,很多時候我們并不希望提交表單后頁面跳轉(zhuǎn),那么,我們就可以使用ajaxSubmit(obj)來提交數(shù)據(jù)//ajaxSubmit(obj)方法是jQuery的一個插件jquery.form.js里面的方法,所以使用此方法需要先引入這個插件$("#formCommoditycategory").ajaxSubmit({data:{'categorynumber':categorynumber,},success:function (data) {//關(guān)閉加載層layer.close(layIndex);//錄入成功if (data.state) {//關(guān)閉模態(tài)框$("#modCommoditycategory").modal("hide");//提示信息layer.msg(data.text, { icon: 1, title: "\u63d0\u793a" });//刷新表格CommoditycategoryQuery();}else {layer.alert(data.text, { icon: 0, title: "\u63d0\u793a" });//清空表單$("#formCommoditycategory").resetForm();}}});}else {layer.alert("\u8bf7\u586b\u5199\u5b8c\u6574\u6570\u636e\u4fe1\u606f!", { icon: 0, title: "\u63d0\u793a" });}}可以看到我這里data只寫了categorynumber,data里最好只寫無法傳過去的參數(shù),如果你的下拉框也傳不過,也可以寫進(jìn)data里。最后再看一下后臺能不能拿到參數(shù):
總結(jié)
以上是生活随笔為你收集整理的解决ajaxSubmit无法传递自动回填和下拉框的数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# base和this
- 下一篇: 简单存取款机的实现---控制输入变量的规