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 個階段:事件捕獲階段、目標階段、冒泡階段。
target 在事件流的目標階段,currentTarget 在事件流的捕獲,目標及冒泡階段。
只有當事件流處在目標階段的時候,兩個的指向才是一樣的, 而當處于捕獲和冒泡階段的時候,target 指向被單擊的對象而 currentTarget 指向當前事件活動的對象 (注冊該事件的對象)。
因此,當點擊到 button 時,是可以獲取到值的,而當點擊到 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>
當你觸發(fā)input事件時,$event 是當前的事件對象。
$event.target.value指向的是當前的input的值。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue如何實現(xiàn)跨頁面?zhèn)鬟f與接收數(shù)組并賦值
這篇文章主要介紹了vue如何實現(xiàn)跨頁面?zhèn)鬟f與接收數(shù)組并賦值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-04-04
Vue中的element tabs點擊錨點定位,鼠標滾動定位
這篇文章主要介紹了Vue中的element tabs點擊錨點定位,鼠標滾動定位方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07
vue中的$emit 與$on父子組件與兄弟組件的之間通信方式
本文主要對vue 用$emit 與 $on 來進行組件之間的數(shù)據(jù)傳輸。重點給大家介紹vue中的$emit 與$on父子組件與兄弟組件的之間通信方式,感興趣的朋友一起看看2018-05-05

