Vue+ElementUI,input控件清空數據恢復問題


在Vue+ElementUI 中做數據校驗。當用戶輸入錯誤時清空input控件在特定情況下會出現原有清空數據會恢復。這是因為在Vue中數據是雙向綁定的,只清空控件文字但form表單中還有數據。

附問題代碼:

1 <el-form-item label="編號" prop="asgnum" >
2     <el-input v-model="form.asgnum" auto-complete="off" placeholder="請輸入編號" maxLength="50"
3               onblur ="if(this.value.replace(/[\u4E00-\u9FA5]/g,'aa').length > this.maxLength){//超過就提示
4                         alert('不得超過' + this.maxLength + '個字符(中文占2個字符)');this.value='';}">
5     </el-input>
6 </el-form-item>

解決方法:只需要把Html對象監聽改成 oninput 即可。

原因:onblur 為失焦監聽會允許用戶先錄入數據在進行檢查。

   oninput為鍵盤輸入監聽先進行檢查避免用戶把錯誤的值錄入到表單中。 

上面的方法對於用戶體驗並不友好所以補充:

直接通過錄入from表單,當為無數據是給賦值為 ' ' 

//部分截取  
function queryData(oneQuery){
        if (oneQuery != null && oneQuery != undefined && oneQuery != ''){
            vue.filters.ocename = oneQuery;
        }else {
            vue.filters.ocename = '';
        }
        vue.····();    //調用vue的查詢方法
    }

以上的例子也許描述很混亂導致讀者不明白我想表達的意思:

  簡而言之核心思想就是既然是雙向傳值綁定,那就直接操作from表單的值就好了。

如有錯誤請在下方批評討論。雖然本人水平也非常有限,如需幫助也可以留言私信。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM