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

Vue + el-ui table 內(nèi)嵌 input 調(diào)用 focus 方法無(wú)效;this.$refs.xxx.focus()方法無(wú)效

這篇具有很好參考價(jià)值的文章主要介紹了Vue + el-ui table 內(nèi)嵌 input 調(diào)用 focus 方法無(wú)效;this.$refs.xxx.focus()方法無(wú)效。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1、先說(shuō)需求

a.在表格編輯態(tài)的時(shí)候,可以在①處敲擊“回車鍵”,光標(biāo)能跳轉(zhuǎn)到②處

b.表格可以在瀏覽態(tài)和編輯態(tài)切換,用v-show來(lái)實(shí)現(xiàn)的編輯和瀏覽

Vue + el-ui table 內(nèi)嵌 input 調(diào)用 focus 方法無(wú)效;this.$refs.xxx.focus()方法無(wú)效,vue.js,前端,javascript,elementui,ui

2、代碼片段(這種方式不生效)

????????頁(yè)面顯示代碼:

<el-table-column label="產(chǎn)量" prop="ptCn" width="110px" header-align="center" align="center">
    <template slot-scope="scope">
        <div v-show="scope.row.edit">
            <el-input :ref="'ptCn' + scope.row.index" v-model="scope.row.ptCn" @keyup.enter.native="inputFocus('ptCn', scope.row.index)"></el-input>
        </div>
        <div v-show="!scope.row.edit">
            {{ scope.row.ptCn }}
        </div>
    </template>
</el-table-column>

methods方法:

    // 回車點(diǎn)擊事件
    inputFocus(flag, index) {
      const nextRow = flag + (++index)

      console.log("refs = ");
      console.log(this.$refs);
      console.log("nextRow = ");
      console.log(this.$refs[nextRow]);

      console.log("光標(biāo)定位前。。。");
      this.$refs[nextRow].focus();
      console.log("光標(biāo)定位后。。。");
    },

3、頁(yè)面效果

Vue + el-ui table 內(nèi)嵌 input 調(diào)用 focus 方法無(wú)效;this.$refs.xxx.focus()方法無(wú)效,vue.js,前端,javascript,elementui,ui

如圖,當(dāng)在第一行 9999 處敲擊回車之后,控制臺(tái)打印出了this.$refs的所有組件,也打印了定位前和定位后的log日志,且沒有報(bào)錯(cuò),說(shuō)明我們的代碼是正確執(zhí)行了的,但是光標(biāo)沒有變,還是在第一行。

4、百度了以下幾個(gè)原因,但是改了之后依舊是不管用

Element UI輸入框focus()方法自動(dòng)獲取焦點(diǎn)失敗處理方法_element focus_冒泡_L的博客-CSDN博客

Vue Element UI input輸入框focus()無(wú)法獲取焦點(diǎn)_vue使用v-show隱藏input框后不再能聚焦_ALL700的博客-CSDN博客

Element UI輸入框focus()方法自動(dòng)獲取焦點(diǎn)失敗處理方法 - 行業(yè)資訊 - 電子產(chǎn)品設(shè)計(jì)開發(fā)與電子技術(shù)學(xué)習(xí)交流!

vue element popover input focus() 不生效 解決辦法 | 碼農(nóng)家園

5、分析原因

我又試了一下,當(dāng)不把<el-input>標(biāo)簽放在<el-table>里的時(shí)候,比如正常表單(ref不是通過(guò)動(dòng)態(tài)賦值)的時(shí)候,這段代碼是完全沒有問(wèn)題的。所以問(wèn)題應(yīng)該是出在了<el-table>上,不知道Element-ui加了什么限制或者Vue的什么bug,導(dǎo)致的代碼執(zhí)行了,但是光標(biāo)卻沒有移動(dòng)

6、改為原生DOM的方式(自測(cè)生效)

頁(yè)面顯示代碼:(將 ref 改為 id,其他都沒變)

<el-table-column label="產(chǎn)量" prop="ptCn" width="110px" header-align="center" align="center">
    <template slot-scope="scope">
        <div v-show="scope.row.edit">
            <!-- 僅僅是將這里的 ref 改為了 id -->
            <el-input :id="'ptCn' + scope.row.index" v-model="scope.row.ptCn" @keyup.enter.native="inputFocus('ptCn', scope.row.index)"></el-input>
        </div>
        <div v-show="!scope.row.edit">
            {{ scope.row.ptCn }}
        </div>
    </template>
</el-table-column>

methods方法:(將this.$refs 改為 document.getElementById)

    // 回車點(diǎn)擊事件
    inputFocus(flag, index) {
      const nextRow = flag + (++index)

      console.log("nextRow = ");
      console.log(document.getElementById(nextRow));

      console.log("光標(biāo)定位前。。。");
      document.getElementById(nextRow).focus();
      console.log("光標(biāo)定位后。。。");
    },

頁(yè)面效果:(在第一行的 9999 處敲擊 回車鍵,此時(shí)能正常跳轉(zhuǎn)到第二行的 27447 處)

Vue + el-ui table 內(nèi)嵌 input 調(diào)用 focus 方法無(wú)效;this.$refs.xxx.focus()方法無(wú)效,vue.js,前端,javascript,elementui,ui

7、總結(jié):

學(xué)好HTML,JS,CSS吧(這是基礎(chǔ)的基礎(chǔ)),無(wú)論框架怎么變,底層都是這東西,當(dāng)發(fā)現(xiàn)框架不支持的時(shí)候,可以考慮考慮原生的DOM實(shí)現(xiàn)。

8、至于為啥this.$refs.xxx.focus() 這個(gè)方法不生效,目前還沒有研究出來(lái),有知道的大佬歡迎留言在這篇文章的評(píng)論區(qū),共勉!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-754508.html

到了這里,關(guān)于Vue + el-ui table 內(nèi)嵌 input 調(diào)用 focus 方法無(wú)效;this.$refs.xxx.focus()方法無(wú)效的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(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)文章

  • Vue+Element-UI 中 el-table 動(dòng)態(tài)合并單元格 :span-method 方法

    Vue+Element-UI 中 el-table 動(dòng)態(tài)合并單元格 :span-method 方法

    記錄一下工作時(shí)遇到的 el-table 合并單元格的需求,超詳細(xì)?? el-table官方提供了合并單元格的方法與返回格式 如下: 根據(jù)敘述有了如下思路: 因?yàn)楹蠖朔祷氐臄?shù)據(jù)非統(tǒng)一, 可能不是按照類別排好的??, 所以官網(wǎng)的例子滿足不了所有的需求所以我們通過(guò)遍歷table的數(shù)據(jù)比較前后兩

    2024年02月12日
    瀏覽(21)
  • element-ui的el-form表單和el-table校驗(yàn)嵌套使用校驗(yàn)el-input和el-select

    element-ui的el-form表單和el-table校驗(yàn)嵌套使用校驗(yàn)el-input和el-select

    場(chǎng)景:前端開發(fā)中,經(jīng)常會(huì)遇到比較多的表單填寫頁(yè)面,其中有el-form,el-table,表格的每一列中又嵌套著輸入框或者下拉框,然后每個(gè)還需要做單獨(dú)的校驗(yàn) 效果: ? 點(diǎn)擊保存可校驗(yàn)el-input和el-select是否有值,不符合校驗(yàn)規(guī)則就標(biāo)紅提醒 ? 1.el-form里面嵌套el-table 2.在el-table-column自定義內(nèi)

    2024年02月02日
    瀏覽(32)
  • el-table中的el-input標(biāo)簽修改值,但界面未更新,解決方法

    el-table中的el-input標(biāo)簽修改值,但界面未更新,解決方法

    在el-table中的el-input里面寫的change事件根本不觸發(fā),都不打印,試了網(wǎng)絡(luò)上各種方法都沒用 然后換成input事件,input事件會(huì)觸發(fā),但界面也未更新。我在觸發(fā)事件的時(shí)候,生成一個(gè)值,用于刷新界面再綁定到el-table上,但會(huì)導(dǎo)致界面強(qiáng)制刷新,體驗(yàn)感很差, 解決 把生成的key值綁

    2024年02月06日
    瀏覽(22)
  • vue element-ui table點(diǎn)擊編輯后,變成input、select、date

    vue element-ui table點(diǎn)擊編輯后,變成input、select、date

    最近,在項(xiàng)目上需要table可以行內(nèi)編輯,在table添加了input、select、時(shí)間控件,并且可以保存本行數(shù)據(jù),當(dāng)你點(diǎn)擊編輯時(shí),table的列就會(huì)變成相對(duì)應(yīng)的input、select和時(shí)間控件,點(diǎn)擊保存時(shí),需要調(diào)用后臺(tái)接口把本行的數(shù)據(jù)傳個(gè)后臺(tái)。 參考網(wǎng)站:https://www.codenong.com/cs106360465/

    2024年02月12日
    瀏覽(23)
  • vue使用element-ui,el-table不顯示

    例如:新增了一個(gè)表格,按官網(wǎng)代碼貼過(guò)來(lái)的,結(jié)果一直不顯示 代碼如下一模一樣,其他數(shù)據(jù)正常顯示,就表格不顯示 其實(shí)版本庫(kù)不一致導(dǎo)致的,賊坑,又不提示 先卸載element-ui安裝一個(gè)低版本的element-ui就可以解決``

    2024年02月11日
    瀏覽(30)
  • Vue中@change、@input和@blur、@focus的區(qū)別及@keyup介紹

    @change在輸入框發(fā)生變化且失去焦點(diǎn)后觸發(fā); @input在輸入框內(nèi)容發(fā)生變化后觸發(fā)(在界面加載數(shù)據(jù)以前) @blur失去焦點(diǎn)就觸發(fā) @focus獲得焦點(diǎn)就觸發(fā) 注意: @change先于@blur @input和change的默認(rèn)參數(shù)為輸入內(nèi)容,而blur的默認(rèn)參數(shù)為dom節(jié)點(diǎn)。 在搜索下拉框選擇數(shù)據(jù)后,即刻搜索的案

    2024年02月20日
    瀏覽(22)
  • element-ui中使用el-table ,el-table-column循環(huán)列發(fā)現(xiàn)列錯(cuò)亂解決方法

    element-ui中使用el-table ,el-table-column循環(huán)列發(fā)現(xiàn)列錯(cuò)亂解決方法

    由于 需要?jiǎng)討B(tài)循環(huán)列展示表格 而不得不 套一層div 標(biāo)簽時(shí)會(huì)造成表格列錯(cuò)亂的想象,這是因?yàn)閑l-table中不允許有除el-table-column標(biāo)簽以外的元素。 1、 或許你可以試試使用template 標(biāo)簽包裹 2、把div標(biāo)簽刪了,不用它包裹 3、再循環(huán)前多加一行寬度為1的列 el-table-column 前面的兩種方

    2024年02月11日
    瀏覽(26)
  • vue(element ui )el-table樹形表格展示及數(shù)據(jù)對(duì)齊

    vue(element ui )el-table樹形表格展示及數(shù)據(jù)對(duì)齊

    注意點(diǎn): el-table配置里 row-key 必須是唯一性 :tree-props=“{ children: ‘relatedPartyChild’ , hasChildren: ‘hasChildren’ }” children配置為后端返回的節(jié)點(diǎn)字段即可

    2024年02月16日
    瀏覽(30)
  • vue中element-ui表格組件el-table封裝,在table表格中插入圖片

    vue中element-ui表格組件el-table封裝,在table表格中插入圖片

    ????????這次寫的項(xiàng)目是寫后臺(tái)管理系統(tǒng)這部分,對(duì)于后臺(tái)管理使用vue寫,用組件的話,table組件用得次數(shù)比較多,可以封裝一個(gè)table組件。 ????????1.如封裝的table組件: ?:prop=\\\"item.prop\\\"??:label=\\\"item.label\\\"是必須要有的,其他的可以根據(jù)自己需要寫 。 2.封裝之后是就是使

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

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

    2024年02月16日
    瀏覽(38)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包