vue動態(tài)多級表單增刪改查及校驗
了解項目需求,構(gòu)建基本html+css尋找合適的elementui框架,學(xué)會高效復(fù)制粘貼~.~節(jié)約時間標(biāo)注1的地方是第一層循環(huán)和他的校驗規(guī)則,對他進行校驗需要的語法是:ref="'任意名'+index"(一定要有:,因為是變量)標(biāo)注2的地方是第二層循環(huán)他的校驗規(guī)則,對他進行校驗需要的語法是:prop="'循環(huán)的數(shù)組名.'+index+'.校驗當(dāng)前項的字段名'"(這里要注意!!!循環(huán)的數(shù)組名后面一定要加.,校驗當(dāng)前項的字段名就是下面input中v-model綁定的值,前面一定要加.。)
甫啞13762043115: 在vue中如何動態(tài)綁定表單元素的屬性 -
烏蘭縣諧波: ______ <input type="text" :placeholder="placeholder"/>data:{ placeholder:'請輸入文本',},改變data中的屬性就可以 實現(xiàn)雙向綁定 改變表單元素的屬性
甫啞13762043115: 如何對dataset中的表進行增刪改查? -
烏蘭縣諧波: ______ dataset.Tables["XX"] 這樣訪問dataset中的表,xx也可以用數(shù)字索引.1、ds.Tables["UserInfo"].Rows.Add( ds.Tables["UserInfo"].NewRow()) 新增 經(jīng)過這樣的操作,ds.Tables["UserInfo"]就多了一條空行.2、ds.Tables["UserInfo"...
甫啞13762043115: 熟悉框架 表單的增刪改查操作要學(xué)會這個 要學(xué)習(xí)什么和多久時間 入門就行 -
烏蘭縣諧波: ______ 主流框架:SSH:Struts1, struts2,spring,hibernate 其實最底層的還是servlet,所以不要忽略了jsp/servlet 增刪改查操作是web編程中最簡單的,也是最基礎(chǔ)的代碼,大部分的代碼都是這些 其中,刪、改、增稍微簡單,查詢是最難的,所以要熟悉sql...
甫啞13762043115: 有誰用過validationEngine驗證表單的,想做個處理中效果 -
烏蘭縣諧波: ______ jQuery.validationEngine plugin是一個旨在校驗表單元素的javascript插件.目前在IE6-8、Chrome、Firefox、Safari、Opera等瀏覽器上表現(xiàn)良好.比如校驗我們常見的Email、phone、URL等等,對于負(fù)責(zé)的Ajax調(diào)用校驗也提供了支持.而且提示信息也可...
甫啞13762043115: 如何利用Vue.js庫中的v - model綁定表單中的數(shù)據(jù) -
烏蘭縣諧波: ______ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 <!DOCTYPE html> <html> <head> <metacharset="UTF-8"/> <title>HTML5學(xué)堂</title> </head> <body> <divclass="wrap"id="app"> 用戶名:<inputtype="text"v-...
甫啞13762043115: 如何使用vue.js構(gòu)造modal組件 -
烏蘭縣諧波: ______ 使用vue.js構(gòu)造modal組件的方法是使用 v-model 指令: v-model 指令在表單控件元素上創(chuàng)建雙向數(shù)據(jù)綁定.根據(jù)控件類型它自動選取正確的方法更新元素. 比如,多個勾選框,綁定到同一個數(shù)組: Jack John Mike Checked names: {{ checkedNames | json }} new Vue({ el: '...', data: { checkedNames: [] } }) 輸出結(jié)果:
甫啞13762043115: 怎么監(jiān)視數(shù)據(jù)庫表的變化,比如增刪改查 -
烏蘭縣諧波: ______ 可以這樣理解,但肯定不是簡單的增刪改查了,結(jié)合業(yè)務(wù)邏輯來進行處理的,比如:庫中保存了歷史一年的客戶數(shù)據(jù),現(xiàn)在要出歷史月統(tǒng)計報告,這個存儲過程就有輸入?yún)?shù)(起始、結(jié)束時間戳),還有統(tǒng)計處理規(guī)則,是簡單連表求平均還是混合運算,通過stored procedure調(diào)用,報告需要的數(shù)據(jù)就有了,然后就可以展示給客戶了.
甫啞13762043115: vue.js怎么獲取表單的屬性 -
烏蘭縣諧波: ______ 在屬性前加上:然后把屬性值綁定到某個變量.
甫啞13762043115: spring中表單數(shù)據(jù)是通過什么進行封裝的 -
烏蘭縣諧波: ______ busniess業(yè)務(wù),當(dāng)然一般處理的是業(yè)務(wù)功能,如增加,刪除,修改 bo_test,bo_test_impl 那么增刪改查的操作 public boolean add(Student student){ dao.addStudent(student); } 這里,如果系統(tǒng)沒有封裝DAO層(數(shù)據(jù)操作),則可以在這里寫 ...
項目需求是:可以添加很多標(biāo)準(zhǔn),一條標(biāo)準(zhǔn)里有很多要點,對其進行輸入,打分等功能,每條要點可以進行刪除,每條大的標(biāo)準(zhǔn)可以進行刪除,點擊提交對每項進行校驗,成品是下圖:
elementui提供了動態(tài)增減表單項,但是只有一層,我們的數(shù)據(jù)需要進行多層級遍歷渲染,不是很符合需求,所以需要自己寫;分為創(chuàng)建和編輯,我們這里只說創(chuàng)建部分。不論是一開始的添加、刪除項目還是添加、刪除要點都還不涉及后臺接口聯(lián)調(diào),純前端操作。下面是基本布局:
<div><divclass="standradList"><span>評課標(biāo)準(zhǔn):</span><divclass="productList"v-if="obj.EvaluationItemParamDTO.length!=0"><divclass="list"v-for="(item,index)inobj.EvaluationItemParamDTO":key="index"><el-form:ref="'objs'+index":model="item"label-width="100px"><el-form-itemlabel="評分項目:"prop="ItemName":rules="{required:true,message:'請輸入評分項目',trigger:'blur'}"><el-inputv-model="item.ItemName"maxlength="30"></el-input></el-form-item><divclass="form_one"v-for="(items,ind)initem.EvaluationPointList":key="ind"><el-form-itemlabel="評分要點:"class="import_point":prop="'EvaluationPointList.'+ind+'.PointDetail'":rules="{required:true,message:'請輸入評分要點',trigger:'blur'}"><el-inputtype="textarea"autosizev-model="items.PointDetail"maxlength="30"></el-input></el-form-item><el-form-itemlabel="分?jǐn)?shù):"class="import_num"label-width="60px":prop="'EvaluationPointList.'+ind+'.Score'":rules="{required:true,message:'請輸入分?jǐn)?shù)',trigger:'blur'}"><el-inputv-model="items.Score"type="number"oninput="if(value.length>4)value=value.slice(0,4)"></el-input></el-form-item><labelstyle="color:#606266;font-size:14px;padding-left:6px">分</label><el-buttonclass="del"@click="deleteItems(index,ind)"v-if="item.EvaluationPointList.length>1"size="mini"plain>刪除</el-button></div><el-buttonsize="mini"style="margin-left:9.6%;color:#409EFF;border:1pxsolid#409EFF"@click="addItem('items',index,item.EvaluationPointList[item.EvaluationPointList.length-1].SortCode)":disabled="item.EvaluationPointList.length>4">+添加評分要點</el-button></el-form><spanclass="spanError"v-if="obj.EvaluationItemParamDTO.length>1"@click="deleteItem(index)">×</span></div></div><el-buttonstyle="width:200px;margin-left:7%;color:#fff;background:#409EFF;"v-if="obj.EvaluationItemParamDTO.length<10"@click="addItem('item',obj.EvaluationItemParamDTO.length,obj.EvaluationItemParamDTO[obj.EvaluationItemParamDTO.length-1].SortCode)">+添加評課項目</el-button></div><divclass="validateForm"style="margin:50px050px7%;text-align:right;padding-right:1%;"><el-button@click="clearAll">取消</el-button><el-button@click="submitStand"style="color:#fff;background:#409EFF;">提交</el-button></div></div>雖然是動態(tài)創(chuàng)建,但是我們一開始提供了一個表單框,用于進行增刪改查,下面是data初始化時綁定的變量及值:
data(){return{obj:{EvaluationTemplateEntity:{TotalScore:100,TemplateName:"",CreateUserId:"",GradeId:"",SubjectId:""},EvaluationItemParamDTO:[{ItemName:"",SortCode:1,EvaluationPointList:[{PointDetail:"",Score:"",SortCode:"1"}]}]}};}我這里是和后臺確認(rèn)的數(shù)據(jù)格式(后面涉及到編輯時要渲染頁面),所以數(shù)據(jù)格式最好統(tǒng)一,會方便很多。
刪除某個評分要點
deleteItems(index,ind){//在這里我們需要根據(jù)傳過來的值知道刪的是哪個評分項目里的哪條評分要點this.obj.EvaluationItemParamDTO[index].EvaluationPointList.forEach((item,indx)=>{if(indx==ind){this.obj.EvaluationItemParamDTO[index].EvaluationPointList.splice(ind,1);}});},刪除某條評分項目
deleteItem(index){this.obj.EvaluationItemParamDTO.splice(index,1);},復(fù)制代碼添加評分要點或者添加評分項目(判斷下是添加一個要點還是一個評分項目)
addItem(str,ind,next){if(str=="item"){//添加評分項目this.obj.EvaluationItemParamDTO.push({ItemName:"",SortCode:next+1,EvaluationPointList:[{PointDetail:"",Score:"",SortCode:next+1}]});}elseif(str=="items"){//添加評分要點//根據(jù)傳值知道是那個評分項目里要添加評分要點this.obj.EvaluationItemParamDTO[ind].EvaluationPointList.push({PointDetail:"",Score:"",SortCode:next+1});}}重點來了,表單校驗!!!簡單的操作之后,要進行提交,對表單所有項進行校驗。怎么對多次循環(huán)渲染的數(shù)據(jù)進行校驗?zāi)兀肯旅娴膸撞绞顷P(guān)鍵,看截圖:
如果前面循環(huán)書寫不存在問題,下面就進行點擊提交校驗
submitStand(){//標(biāo)紅提示未填項letnewArr=[];let_self=this;this.obj.EvaluationItemParamDTO.forEach((item,index)=>{checkForm("objs"+index);//這里的objs就是第一層循環(huán)要校驗的那里(:ref='"objs"+index'),一定要寫一樣的});functioncheckForm(arrName){varresult=newPromise(function(resolve,reject){_self.$refs[arrName][0].validate(valid=>{if(valid){resolve();}else{reject();}});});newArr.push(result);}Promise.all(newArr).then(function(){setTimeout(function(){letsums=0;_self.obj.EvaluationItemParamDTO.forEach((item,index)=>{item.EvaluationPointList.forEach((items,ind)=>{sums+=Number(items.Score);});})if(sums==100){//這里是判斷成功之后的事件}else{//這里是判斷失敗的提示_self.$message.error("總分有誤,請重新設(shè)置")}},500);}).catch(function(){//捕捉異常_self.$message({message:"操作失敗",type:"error"});});}至此多層級循環(huán)表單的校驗就成功啦~.~,如果還有疑問,請百度或者刪了再敲一遍,因為我這里是沒有問題的!一起努力哈!
作者:大北呀
相關(guān)評說:
烏蘭縣諧波: ______ <input type="text" :placeholder="placeholder"/>data:{ placeholder:'請輸入文本',},改變data中的屬性就可以 實現(xiàn)雙向綁定 改變表單元素的屬性
烏蘭縣諧波: ______ dataset.Tables["XX"] 這樣訪問dataset中的表,xx也可以用數(shù)字索引.1、ds.Tables["UserInfo"].Rows.Add( ds.Tables["UserInfo"].NewRow()) 新增 經(jīng)過這樣的操作,ds.Tables["UserInfo"]就多了一條空行.2、ds.Tables["UserInfo"...
烏蘭縣諧波: ______ 主流框架:SSH:Struts1, struts2,spring,hibernate 其實最底層的還是servlet,所以不要忽略了jsp/servlet 增刪改查操作是web編程中最簡單的,也是最基礎(chǔ)的代碼,大部分的代碼都是這些 其中,刪、改、增稍微簡單,查詢是最難的,所以要熟悉sql...
烏蘭縣諧波: ______ jQuery.validationEngine plugin是一個旨在校驗表單元素的javascript插件.目前在IE6-8、Chrome、Firefox、Safari、Opera等瀏覽器上表現(xiàn)良好.比如校驗我們常見的Email、phone、URL等等,對于負(fù)責(zé)的Ajax調(diào)用校驗也提供了支持.而且提示信息也可...
烏蘭縣諧波: ______ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 <!DOCTYPE html> <html> <head> <metacharset="UTF-8"/> <title>HTML5學(xué)堂</title> </head> <body> <divclass="wrap"id="app"> 用戶名:<inputtype="text"v-...
烏蘭縣諧波: ______ 使用vue.js構(gòu)造modal組件的方法是使用 v-model 指令: v-model 指令在表單控件元素上創(chuàng)建雙向數(shù)據(jù)綁定.根據(jù)控件類型它自動選取正確的方法更新元素. 比如,多個勾選框,綁定到同一個數(shù)組: Jack John Mike Checked names: {{ checkedNames | json }} new Vue({ el: '...', data: { checkedNames: [] } }) 輸出結(jié)果:
烏蘭縣諧波: ______ 可以這樣理解,但肯定不是簡單的增刪改查了,結(jié)合業(yè)務(wù)邏輯來進行處理的,比如:庫中保存了歷史一年的客戶數(shù)據(jù),現(xiàn)在要出歷史月統(tǒng)計報告,這個存儲過程就有輸入?yún)?shù)(起始、結(jié)束時間戳),還有統(tǒng)計處理規(guī)則,是簡單連表求平均還是混合運算,通過stored procedure調(diào)用,報告需要的數(shù)據(jù)就有了,然后就可以展示給客戶了.
烏蘭縣諧波: ______ 在屬性前加上:然后把屬性值綁定到某個變量.
烏蘭縣諧波: ______ busniess業(yè)務(wù),當(dāng)然一般處理的是業(yè)務(wù)功能,如增加,刪除,修改 bo_test,bo_test_impl 那么增刪改查的操作 public boolean add(Student student){ dao.addStudent(student); } 這里,如果系統(tǒng)沒有封裝DAO層(數(shù)據(jù)操作),則可以在這里寫 ...