[vue]html标签select会改变value类型??都变成string了?

采用vue写法利用select取第二个值作为value
modelValue类型为number|string

const data:[number|string,number|string][]= [[1, '肖明'],['测试', 1],["id", 5]],

<select :value="modelValue" @change="selectHandler($event)">

<option v-for="(item, index) in data" :key="item[0]" :value="item[1]">

{{ item[0] }}

</option>

</select>

js

const selectHandler = (e: Event) => {

const val = (e.target as HTMLSelectElement).value //问题:不能获取到正确类型?

//emits('update:modelValue', val)

}

一楼大哥详解可以!!

const modelValueRef = ref<number | string | undefined>()

<select v-model="modelValueRef">

<option v-for="(item, index) in enumStrsList" :key="index" :value="item[1]">

{{ item[0] }}

</option>

</select>


回答:

你用 event.target.value 取到的当然是字符。因为 Vue 会尽量保持 HTML 兼容性,而 DOM 里的属性都是字符类型。

这种时候直接用 v-model 配合 this.modelValue 就好。

以上是 [vue]html标签select会改变value类型??都变成string了? 的全部内容, 来源链接: utcz.com/p/932994.html

回到顶部