您好,登錄后才能下訂單哦!
一、問題描述:
我們在輸入銀行賬號會設置每四位添加一個空格,輸入金額,每三位添加一個空格。那么,在vue,element-ui 組件中,如何實現呢?
二、效果圖:
三、實現代碼:
<el-table-column prop="account" label="銀行賬號"> <template slot-scope="scope"> <el-input type="text" maxlength="23" v-model="scope.row.account" placeholder="請輸入銀行賬號" @change="validateNum(scope.$index)"></el-input> </template> </el-table-column> // 輸入銀行卡號 validateNum (index) { this.setNum(this.supplierObjs.supplierBankAccount, index) }, // 設置銀行卡號,每四位添加一個空格 setNum (data, index) { data.forEach((element, i) => { element.account = element.account.replace(/\s/g, '').replace(/[^\d]/g, '').replace(/(\d{4})(?=\d)/g, '$1 ') this.$set(element, 'account', element.account) }) },
四、思路:
1、在組件的change事件中添加實現方法(因為我們的業務需求是可以添加多個銀行卡號,所以用index做了區分),取出每行的值;
2、用element.account = element.account.replace(/\s/g, '').replace(/[^\d]/g, '').replace(/(\d{4})(?=\d)/g, '$1 ')
,類似正則表達式的方法對數據進行處理;
3、this.$set(element, 'account', element.account)
,set方法,將處理后的值set到model中,處理后的數據就保存到model中了。
實現起來也非常簡單,但是因為element-UI沒有提供輸入設置的方法,所以需要自己根據需求完善一下。
補充:下面看下js 填寫銀行卡號時,每4個數字用空格隔開
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Document</title> <script src="js/jQuery.js"></script> </head> <body> <script> var num = 0; function inputAccount(){ var str = $('#bankCard').val(); var elem = document.getElementById("bankCard"); console.log(elem); if(str.length > num){ var c = str.replace(/\s/g, ""); if(str != "" && c.length > 4 && c.length % 4 == 1){ $('#bankCard').val(str.substring(0, str.length - 1)+ " " + str.substring(str.length - 1, str.length)); } } if(elem.setSelectionRange){//W3C setTimeout(function(){ elem.setSelectionRange(elem.value.length,elem.value.length); elem.focus(); },0); }else if(elem.createTextRange){//IE var textRange=elem.createTextRange(); textRange.moveStart("character",elem.value.length); textRange.moveEnd("character",0); textRange.select(); } num = str.length; } </script> <input type="text" name="" oninput="inputAccount()" id="bankCard" /> </body>
</html> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Document</title> <script src="js/jQuery.js"></script> </head> <body> <input type="text" name="" id="box" /> <script> $(function(){ $('#box').keyup(function(){ var value=$(this).val().replace(/\s/g,'').replace(/(\d{4})(?=\d)/g,"$1 "); $(this).val(value) }) }) </script> </body> </html>
總結
以上所述是小編給大家介紹的vue中Element-ui 輸入銀行賬號每四位加一個空格的實現代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。