国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue前端el-input輸入 限制輸入位數(shù)以及輸入規(guī)則

這篇具有很好參考價(jià)值的文章主要介紹了vue前端el-input輸入 限制輸入位數(shù)以及輸入規(guī)則。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前端兼容el-input輸入時(shí),僅允許輸入負(fù)號(hào)、數(shù)字以及小數(shù)點(diǎn),且限制整數(shù)位數(shù)以及小數(shù)位數(shù),且不允許輸入除第一個(gè)負(fù)號(hào)以外的其他符號(hào)

邏輯梳理

1、使用element-ui插件的el-input組件作為頁面元素,為其綁定input事件(我這里是在表格里使用slot插入的inpu元素,所以傳入?yún)?shù)使用scope傳入)
2、綁定輸入事件,傳參給工具函數(shù),等待返回值返回
3、傳入?yún)?shù)從左到右依次為:
輸入框正在輸入的值e
整數(shù)部分最大輸入位數(shù)限制intMax(number類型):控制最大輸入幾位,超過此值不可繼續(xù)輸入
小數(shù)部分最大輸入位數(shù)限制dotMax(number類型):同上
輸入框綁定的對(duì)象row:用于對(duì)象綁定
綁定對(duì)象上綁定此輸入框的鍵值name:用于數(shù)據(jù)更新

說明:工具函數(shù)內(nèi)部 return ‘0’ 的內(nèi)容可以根據(jù)需求return不同數(shù)據(jù),這里return
0便于判斷后續(xù)操作是否執(zhí)行,如果輸入不合法字符,直接干掉不合法字符,不需要執(zhí)行后面邏輯了

代碼

html:

<el-input
   autofocus
   v-if="scope.row.isActive == true"
   type="text"
   class="column-remark-input"
   v-model.trim="scope.row.adjustAmount"
   placeholder="調(diào)整金額(若有)"
   @blur="numberBlur(scope)"
   @input="inputFocus($event, scope.row, scope)"
></el-input>

工具函數(shù):文章來源地址http://www.zghlxwxcb.cn/news/detail-696169.html

/* 輸入時(shí) */
		inputFocus(e, row, scope) {
            var num = this.inputLimit(e, 12, 2, row, 'adjustAmount')
            console.log("?? >> inputFocus >> num:", num)
		},
/* 
            限制輸入框只可以輸入數(shù)字以及負(fù)號(hào)
            且整數(shù)位最大可輸入intMax位
            小數(shù)位最大可輸入dotMax位
            name:  綁定對(duì)象鍵值
            intMax:整數(shù)最大位數(shù)
            dotMax:小數(shù)最大位數(shù)
        */
        inputLimit(num, intMax, dotMax, row, name) {
            // 類型過濾
            if(num === undefined || num === null) {
                return '0'
            }
            var next = num + ''
            /* 如果有單位 */
            /* 單位只允許是-,且在第一位 */
            /* 第一位不是-號(hào) 則過濾掉所有多余符號(hào)*/
            var hasCompany = ( next.indexOf('-') === 0 ) ? true : false
            var res = next.match(/-/g)
            if(hasCompany && res && res.length === 1) {
                /* 負(fù)號(hào)在第一位,且只有一個(gè)負(fù)號(hào),正常流程*/
                /* 拿走第一個(gè)負(fù)號(hào)以后需,不允許有其他任何負(fù)號(hào) */
                next = next.substring(1)
                /* 如果有小數(shù) */
                if(next.indexOf('.') !== -1) {
                    var temp = next.split('.')
                    /* 保證 整數(shù)部分、小數(shù)部分 全部沒有怪異符號(hào)在中間 */
                    var intNum = temp[0].replace(/[^0-9]/g, "") 
                    var dotNum = temp[1].replace(/[^0-9]/g, "")
                    next = intNum + '.' + dotNum
                    this.$set(row, name, next)
                }else{
                    /* 如果沒有小數(shù) */
                    next = next.replace(/[^0-9]/g, "")
                    this.$set(row, name, next)
                }
            }else{
                /* 負(fù)號(hào)不在第一位,或者有其他怪異符號(hào) */
                if(next.indexOf('.') !== -1) {
                    /* 如果有小數(shù) */
                    var temp = next.split('.')
                    /* 保證 整數(shù)部分、小數(shù)部分 全部沒有怪異符號(hào)在中間 */
                    var intNum = temp[0].replace(/[^0-9]/g, "") 
                    var dotNum = temp[1].replace(/[^0-9]/g, "")
                    var final = (hasCompany ? '-' : '' ) + intNum + '.' + dotNum
                    this.$set(row, name, final)
                    return '0'
                }else{
                    /* 如果沒有小數(shù) */
                    var final = next.replace(/[^0-9]/g, "")
                    this.$set(row, name, final)
                    return '0' // 這里可以根據(jù)需求return不同數(shù)據(jù),這里return 0便于判斷后續(xù)操作是否執(zhí)行,如果輸入不合法字符,直接干掉不合法字符,不需要執(zhí)行后面邏輯了
                }
            }
            if(next !== '0' && Number(next)) {
                var resNum = ''
                /* 如果有小數(shù) */
                if(next.indexOf('.') !== -1) {
                    var arr = next.split('.')
                    arr[0] = arr[0].length > intMax ? arr[0].substring(0, intMax) : arr[0]
                    if(arr[1] !== '') {
                        arr[1] = arr[1].length > dotMax ? arr[1].substring(0, dotMax) : arr[1]
                        var result = arr.join('.')
                        resNum = Number(hasCompany ? ('-' + result) : result).toFixed(arr[1].length)
                    }else{
                        var result = arr.join('.')
                        resNum = hasCompany ? ('-' + result) : result
                    }
                    this.$set(row, name, resNum)
                    return resNum
                }else{
                    /* 如果沒小數(shù) 一串?dāng)?shù)字,只需要限制位數(shù)*/
                    resNum = num.length > intMax ? num.substring(0, intMax) : num
                    this.$set(row, name, resNum)
                }
                return resNum
            }
        },

到了這里,關(guān)于vue前端el-input輸入 限制輸入位數(shù)以及輸入規(guī)則的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • element--el-input限制輸入為數(shù)字且必須大于0

    1. el-input限制輸入為數(shù)字且必須大于0 此時(shí)只能輸入大于0的正整數(shù)。 2. el-input限制輸入為數(shù)字 此時(shí)只能輸入大于等于0的正整數(shù)。

    2024年02月16日
    瀏覽(41)
  • 【vue elementui中el-input輸入框禁用】

    【vue elementui中el-input輸入框禁用】

    ??使用:disabled=\\\"true\\\"可以使el-input標(biāo)簽禁用

    2024年02月16日
    瀏覽(26)
  • 【踩坑筆記】vue3 element-plus el-input 無法輸入問題

    原因是 el-form 的 v-model=\\\"loginForm\\\" ref=\\\"loginForm\\\" 在vue3中值不能相同 把ref去掉或者改名即可 這是js的代碼( 對(duì)象記得用reactive,不然也會(huì)無法輸入 ) 這個(gè)是可以輸入的 這是無法輸入的 就改了個(gè)ref

    2024年02月11日
    瀏覽(30)
  • 關(guān)于vue的element的輸入框el-input限輸入只能是數(shù)字,包含小數(shù),正數(shù),自然數(shù)等等。

    關(guān)于element的輸入框el-input限輸入只能是數(shù)字,就是包括數(shù)字123456,小數(shù)的只能一個(gè)小數(shù)點(diǎn),不能出現(xiàn)多個(gè)小數(shù)點(diǎn),小數(shù)可以0開頭,但是整數(shù)不能0開頭,不能輸入文字,不能輸入負(fù)數(shù),所以對(duì)于這個(gè)我做了兩個(gè)判斷,一個(gè)是正則判斷,還有一個(gè)是0開頭的整數(shù)判斷,正則判斷是只

    2024年02月12日
    瀏覽(25)
  • vue element-ui el-input輸入框綁定@keyup.enter回車事件無效

    由于element-ui把input進(jìn)行了封裝,input外面是多一層div的。 在element-ui里有很多因?yàn)樽陨矸庋b了幾層標(biāo)簽導(dǎo)致事件和樣式無法按想要的效果呈現(xiàn),遇到后可以在網(wǎng)頁中查看dom結(jié)構(gòu)分析原因。 所以對(duì)于el-input,使用 @keyup.enter是無效的,需要加上 .native 限制符 .native修飾符的作用:

    2024年02月16日
    瀏覽(36)
  • 設(shè)置輸入框el-input圖標(biāo) / el-input表單只顯示number

    設(shè)置輸入框el-input圖標(biāo) / el-input表單只顯示number

    第一種方法說明: prefix-icon圖標(biāo)位置在前面 suffix-icon圖標(biāo)位置在后面 el-icon-search 搜索小圖標(biāo) el-icon-date 日期小圖標(biāo) 第二種方式是通過slot來插入 PS:

    2024年02月16日
    瀏覽(26)
  • el-input校驗(yàn),只能輸入正整數(shù)

    一、表單校驗(yàn)方式: ?二、el-input的type設(shè)置為number,然后去掉上下箭頭 ?

    2024年02月14日
    瀏覽(31)
  • <el-input> textarea文本域顯示滾動(dòng)條(超過高度就自動(dòng)顯示)+ <el-input >不能正常輸入,輸入了也不能刪除的問題

    <el-input> textarea文本域顯示滾動(dòng)條(超過高度就自動(dòng)顯示)+ <el-input >不能正常輸入,輸入了也不能刪除的問題

    需求:首先是給定高度,輸入文本框要自適應(yīng)這個(gè)高度。文本超出高度就會(huì)顯示滾動(dòng)條否則不顯示。 參考文章 問題二: 加入這個(gè),@input=“change($event)” 參考文獻(xiàn) 參考文獻(xiàn)(問題更全)

    2024年02月07日
    瀏覽(23)
  • el-input實(shí)現(xiàn)寬度跟隨輸入內(nèi)容自適應(yīng)

    el-input實(shí)現(xiàn)寬度跟隨輸入內(nèi)容自適應(yīng)

    用了很多次el-input輸入框,但是沒有對(duì)這一個(gè)實(shí)現(xiàn)方式做深一步的思考,這次就把自己整理的方式記錄下來; 如果默認(rèn)直接使用,這里的input輸入框的寬度是width:100%。繼承它的父級(jí)的寬度。 思路1: 1.首先我們可以獲取輸入內(nèi)容的寬度,然后給定一個(gè)span標(biāo)簽,使其的寬度撐

    2024年02月13日
    瀏覽(20)
  • ElementUI el-input無法輸入、修改、刪除問題解決

    ElementUI el-input無法輸入、修改、刪除問題解決

    elementUI是國(guó)內(nèi)前端工程師應(yīng)該都聽過或者使用過的前端框架, 不只使用簡(jiǎn)單,而且有著詳細(xì)的文檔和 API。使用 el-input 這個(gè)標(biāo)簽時(shí),我有些情況下在 el-input 是無法輸入的,綁定的值動(dòng)也動(dòng)不了,刪也刪不掉,改也改不了,所以我做了以下的解決方法的統(tǒng)計(jì),希望可以幫助到大

    2024年02月12日
    瀏覽(97)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包