vue中使用event.target.value踩坑記錄
使用event.target.value踩坑
問題
原本是要用三個按鈕顯示后端獲取的數(shù)據(jù),點擊按鈕可以得到對應(yīng)的值。
但是發(fā)現(xiàn)點擊按鈕有時有值,有時是 undefined。
代碼如下:
<el-row> <el-button @click.native="chooseVal" :value="cone">{{ cone }}</el-button> <el-button @click.native="chooseVal" :value="ctwo">{{ ctwo }}</el-button> <el-button @click.native="chooseVal" :value="cthree">{{ cthree }}</el-button> </el-row>
chooseVal: function (event) { console.log("target: " + event.target.value); }
原因
DOM 事件流分為 3 個階段:事件捕獲階段、目標(biāo)階段、冒泡階段。
target 在事件流的目標(biāo)階段,currentTarget 在事件流的捕獲,目標(biāo)及冒泡階段。
只有當(dāng)事件流處在目標(biāo)階段的時候,兩個的指向才是一樣的, 而當(dāng)處于捕獲和冒泡階段的時候,target 指向被單擊的對象而 currentTarget 指向當(dāng)前事件活動的對象 (注冊該事件的對象)。
因此,當(dāng)點擊到 button 時,是可以獲取到值的,而當(dāng)點擊到 button 內(nèi)顯示的數(shù)字時,得到的是 undefned。
改為 currentTarget 后,不論是點擊 button 還是數(shù)字,指向的都是 button。
使用$event.target.value來獲取input的值
<template> <div class="input_group"> <label :for="name">{{name}}</label> <input :type="type" :value = "value" :placeholder="placeholder" :name = "name" @input="$emit('input',$event.targer.value)" > </div> </template>
<script> export default { name : 'input_group', props : { type :String, default : 'text' }, value : String, placeholder :String, name : String, } </script>
當(dāng)你觸發(fā)input事件時,$event 是當(dāng)前的事件對象。
$event.target.value指向的是當(dāng)前的input的值。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue-ANTD表單輸入中自定義校驗一些正則表達(dá)式規(guī)則介紹
這篇文章主要介紹了Vue-ANTD表單輸入中自定義校驗一些正則表達(dá)式規(guī)則介紹,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01Nuxt升級2.0.0時出現(xiàn)的問題(小結(jié))
這篇文章主要介紹了Nuxt升級2.0.0時出現(xiàn)的問題(小結(jié)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-10-10Vue子組件內(nèi)的props對象參數(shù)配置方法
這篇文章主要介紹了?Vue?子組件內(nèi)的??props?對象里的?default?參數(shù)是如何定義Array、?Object?、或?Function?默認(rèn)值的正確寫法說明,感興趣的朋友跟隨小編一起看看吧2022-08-08vue使用element-ui的el-date-picker設(shè)置樣式無效的解決
本文主要介紹了vue使用element-ui的el-date-picker設(shè)置樣式無效的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03