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

Vue實(shí)現(xiàn)多個(gè)input輸入,光標(biāo)自動(dòng)聚焦到下一個(gè)input

這篇具有很好參考價(jià)值的文章主要介紹了Vue實(shí)現(xiàn)多個(gè)input輸入,光標(biāo)自動(dòng)聚焦到下一個(gè)input。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

遇到一個(gè)需求,需要實(shí)現(xiàn)和移動(dòng)端短信輸入一樣,輸入內(nèi)容后,光標(biāo)會(huì)進(jìn)入下一個(gè)輸入框

需要用到2個(gè)事件?
keydown事件發(fā)生在鍵盤的鍵被按下的時(shí)候

keyup?事件在按鍵被釋放的時(shí)候觸發(fā)

Vue實(shí)現(xiàn)多個(gè)input輸入,光標(biāo)自動(dòng)聚焦到下一個(gè)input,javascript,開發(fā)語(yǔ)言,ecmascript文章來源地址http://www.zghlxwxcb.cn/news/detail-828744.html

<template>
  <div class="box">
    <el-form class="demo-ruleForm" ref="form" :model="form" :rules="rules">
      <el-form-item class="form-item" label="身高" prop="Height">
        // 此處為了做校驗(yàn)處理
        <el-input type="text" v-model="Height" v-show="false"></el-input>
        <span v-for="(item,index) in HeightList" :key="index">
          <input type="text" v-model="item.val" class="border-input" maxlength="1" @keyup="nextFocu($event,index, 1)" @keydown="changeValue(index,$event)" />
        </span>
        <span class="text">cm</span>
      </el-form-item>
    </el-form>
  </div>
</template>
 
<script>
const form = {
  Height: '', // 身高
  Weight: '' // 體重
}
export default {
  data () {
    const validatePass = (rule, value, callback) => {
      if (value.length < 3) {
        callback(new Error('請(qǐng)輸入'))
      } else if (isNaN(value)) {
        callback(new Error('請(qǐng)輸入數(shù)字'))
      } else {
        if (value <= 99) {
          callback(new Error('小于99'));
        } else if (value >= 251) {
          callback(new Error('大于251'))
        } else {
          callback()
        }
      }
    }
    const validatePass2 = (rule, value, callback) => {
      console.log(value)
      if (value.length < 4) {
        callback(new Error('請(qǐng)輸入'))
      } else if (isNaN(value)) {
        callback(new Error('請(qǐng)輸入數(shù)字'))
      } else {
        if (value < '0200') {
          callback(new Error('不能以0開頭'))
        } else if (value > '2000') {
          callback(new Error('不能大于2000'))
        } else {
          callback()
        }
      }
    }
    return {
      Height: '', // 身高
      Weight: '', // 體重
      form: { ...form },
      HeightList: [
        {
          val: ''
        },
        {
          val: ''
        },
        {
          val: ''
        }
      ],
      WeightList: [
        {
          val: ''
        },
        {
          val: ''
        },
        {
          val: ''
        },
        {
          val: ''
        }
      ],
      rules: {
        Height: [
          { validator: validatePass, trigger: ['focus', 'blur', 'change'] },
        ],
        Weight: [
          { validator: validatePass2, trigger: ['focus', 'blur', 'change'] },
        ]
      }
    }
  },
  methods: {
    // 下一個(gè)文本框
    nextFocu (el, index, type) {
      let list = this[type === 1 ? 'HeightList' : 'WeightList'];
      let field = type === 1 ? "Height" : "Weight";
      let val = list[index].val;
      var dom = document.getElementsByClassName(el.srcElement.className),
        currInput = dom[index],
        nextInput = dom[index + 1],
        lastInput = dom[index - 1];
      if (el.keyCode != 8) {
        //禁止輸入非數(shù)字類型
        if (!val.replace(/\D/g, '')) {
          list[index].val = "";
          return
        }
        if (index < (list.length - 1)) {
          nextInput.focus();
        } else {
          currInput.blur();
        }
      } else {
        if (index != 0) {
          lastInput.focus();
        }
      }
      // 數(shù)據(jù)轉(zhuǎn)成字符串
      this.form[field] = list.map(item => { return item.val }).join('')
      // 重新賦值
      this[field] = this.form[field]
    },
    /*當(dāng)鍵盤按下的時(shí)候清空原有的數(shù)*/
    changeValue (index, el) {
      if (el.keyCode !== 32) {
        this.HeightList[index].val = "";
      }
    }
  }
}
</script>
 
<style lang="less" scoped>
.border-input {
  background: #ffffff;
  width: 24px;
  font-size: 24px;
  height: 24px;
  margin-left: 8px;
  text-align: center;
  border: 1px solid #ccc;
  border-radius: 4px;
}
.box {
  width: 400px;
  margin: 0 auto;
  border: 1px solid #ccc;
}
/deep/.el-form-item__content {
  text-align: right;
}
/deep/ .el-form-item__error {
  position: absolute;
  right: 20px;
}
</style>

到了這里,關(guān)于Vue實(shí)現(xiàn)多個(gè)input輸入,光標(biāo)自動(dòng)聚焦到下一個(gè)input的文章就介紹完了。如果您還想了解更多內(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)文章

  • 頁(yè)面上input輸入框?qū)挾葘?shí)現(xiàn)自動(dòng)調(diào)整

    ?? input輸入框?qū)挾葘?shí)現(xiàn)自動(dòng)調(diào)整,本文介紹兩種方式,一是通過獲取input 內(nèi)容的寬度 實(shí)現(xiàn)輸入框?qū)挾鹊淖詣?dòng)調(diào)整;二是通過內(nèi)容字符串的長(zhǎng)度乘以文本字體大小的積,來實(shí)現(xiàn)輸入框?qū)挾鹊淖詣?dòng)調(diào)整。 1、input輸入框?qū)挾鹊墨@取方式一 ?? 由于input輸入框中text文本的實(shí)際寬度

    2024年02月14日
    瀏覽(20)
  • vue獲取+設(shè)置光標(biāo)位置 光標(biāo)定位 選擇輸入框文本

    版本:vue2、vant2 在vue是用ref、 r e f s 獲取 d o m 的,在 v a n t 框架里 v a n ? f i e l d 是輸入框組件,它不支持直接設(shè)置光標(biāo)的方法 s e t S e l e c t i o n R a n g e ( ) ,所以通過 t h i s . refs獲取dom的,在vant框架里van-field是輸入框組件,它不支持直接設(shè)置光標(biāo)的方法setSelectionRange(),所

    2024年02月16日
    瀏覽(21)
  • 【uniapp】如何手動(dòng)實(shí)現(xiàn)讓input文本框聚焦

    【uniapp】如何手動(dòng)實(shí)現(xiàn)讓input文本框聚焦

    開發(fā)中遇到一個(gè)問題,希望在每次操作頁(yè)面完成后,input文本框都能自動(dòng)聚焦,那么問題來了,應(yīng)該怎么做,接下來請(qǐng)繼續(xù)往下看。 也許大多數(shù)同學(xué)都會(huì)這么做,嘗試過修改文本框?qū)傩?focus 為 true ,但是沒有效果,參考如下 嘗試手動(dòng)實(shí)現(xiàn),調(diào)用focus事件,想到它可不像之前的

    2024年02月12日
    瀏覽(76)
  • 前端實(shí)現(xiàn)輸入框?qū)崟r(shí)搜索,【vue+el-input】

    一般搜索都是調(diào)后端的接口,綁searchValue字段(也有可能叫其他的字段名),通過后端的接口進(jìn)行實(shí)時(shí)搜索 如果由前端自己實(shí)現(xiàn)搜索過濾的話也簡(jiǎn)單 1、input事件 2、綁數(shù)據(jù)源的時(shí)候,根據(jù)條件判斷用過濾數(shù)組還是原數(shù)組 3、data中定義數(shù)據(jù) 4、先獲取原數(shù)組的數(shù)據(jù) 5、輸入框in

    2024年02月09日
    瀏覽(33)
  • Unity主動(dòng)聚焦InputField并且設(shè)置光標(biāo)位置

    在一次文本輸入的設(shè)計(jì)中,需要用到點(diǎn)擊自定義的Button來刪除InputField里對(duì)應(yīng)光標(biāo)位置的字符,并且保持InputField和光標(biāo)不會(huì)丟失焦點(diǎn) 實(shí)現(xiàn)刪除字符 實(shí)現(xiàn)InputField焦點(diǎn)不丟失 實(shí)現(xiàn)光標(biāo)不消失 解決光標(biāo)重設(shè)時(shí),由于自動(dòng)SelectAll時(shí)導(dǎo)致的選中顏色閃爍 各位有更優(yōu)的辦法可以分享分

    2024年02月13日
    瀏覽(16)
  • css偽類元素使用技巧 表達(dá)input父級(jí)聚焦css實(shí)現(xiàn)
  • 【iosH5開發(fā)】IOS瀏覽器對(duì)于Vue3 Element-plus el-input中,input.value.focus無法聚焦問題

    此次項(xiàng)目遇到了兩個(gè)問題,一個(gè)是在Vue3中el-input的input.value.focus()無法觸發(fā),但是在PC或者安卓均可觸發(fā)。 第二個(gè)問題是ios瀏覽器H5沒有辦法默認(rèn)聚焦觸發(fā)鍵盤輸入

    2024年02月13日
    瀏覽(24)
  • Vue:實(shí)現(xiàn)輸入框/選擇列表內(nèi)容更改,頁(yè)面實(shí)時(shí)預(yù)覽多個(gè)內(nèi)容變化

    在各種前端頁(yè)面中,比如用戶信息注冊(cè)的頁(yè)面,往往有多個(gè)輸入框和多個(gè)選項(xiàng)列表。 為了避免用戶選錯(cuò)或者輸入錯(cuò)誤,可以在前端頁(yè)面上實(shí)時(shí)將多個(gè)輸入框的內(nèi)容拼接起來,顯示到頁(yè)面或者彈出的窗口中,幫助用戶核對(duì)、檢查輸入的內(nèi)容是否有錯(cuò),提高用戶體驗(yàn)。 本文介紹

    2024年02月10日
    瀏覽(55)
  • 【Vue】輸入框狀態(tài)切換&自動(dòng)獲取輸入框焦點(diǎn)の實(shí)現(xiàn)

    場(chǎng)景:點(diǎn)擊 button 按鈕展示輸入框,并自動(dòng)獲取對(duì)話框焦點(diǎn),失去焦點(diǎn)時(shí)展示 button 按鈕 實(shí)現(xiàn): 點(diǎn)擊 button 按鈕展示輸入框,失去焦點(diǎn)時(shí)展示 button 按鈕 在data中定義 visibility ,確定輸入框的展示狀態(tài),默認(rèn)為 false 定義 changeVisibility 方法,并給 button 綁定點(diǎn)擊事件@ click=\\\"changeVi

    2024年02月12日
    瀏覽(21)
  • Vue3輸入框(Input)

    Vue3輸入框(Input)

    參數(shù) 說明 類型 默認(rèn)值 必傳 width 輸入框?qū)挾?string | number ‘100%’ false addonBefore 設(shè)置前置標(biāo)簽 string | slot ‘’ false addonAfter 設(shè)置后置標(biāo)簽 string | slot ‘’ false allowClear 可以點(diǎn)擊清除圖標(biāo)刪除內(nèi)容 boolean false false password 是否啟用密碼框 boolean false false disabled 是否禁用 boolean fal

    2024年02月15日
    瀏覽(16)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包