www.tjgcgs88.cn-狠狠久久亚洲欧美专区不卡,久久精品国产99久久无毒不卡,噼里啪啦国语版在线观看,zσzσzσ女人极品另类

  • <strike id="qgi8o"><td id="qgi8o"></td></strike>
  • <ul id="qgi8o"><acronym id="qgi8o"></acronym></ul>
  • <li id="qgi8o"></li>
    <ul id="qgi8o"></ul>
    <strike id="qgi8o"><rt id="qgi8o"></rt></strike>
    <ul id="qgi8o"><center id="qgi8o"></center></ul>
  • <kbd id="qgi8o"></kbd>

    vue動態(tài)多級表單增刪改查及校驗

    了解項目需求,構(gòu)建基本html+css

    項目需求是:可以添加很多標(biāo)準(zhǔn),一條標(biāo)準(zhǔn)里有很多要點,對其進行輸入,打分等功能,每條要點可以進行刪除,每條大的標(biāo)準(zhǔn)可以進行刪除,點擊提交對每項進行校驗,成品是下圖:

    尋找合適的elementui框架,學(xué)會高效復(fù)制粘貼~.~節(jié)約時間

    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)鍵,看截圖:

    標(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綁定的值,前面一定要加.。)

    如果前面循環(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)評說:

  • 甫啞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ù)操作),則可以在這里寫 ...
  • 国产精品久久久久国产A级| 无码 免费 国产在线观看91| 开心婷婷五月激情综合社区| 午夜福利一区二区三区在线观看| 日本欧美强乱视频在线| 大地影院mv在线观看高清| 最新无码A∨在线观看| 欧美最猛性ⅩXXXX免费的| 亚洲日本欧美在线不卡黑配白| 日韩精品乱码av一区二区|