VUEjs,如何根据它的id获取文本框的值
Posted
技术标签:
【中文标题】VUEjs,如何根据它的id获取文本框的值【英文标题】:VUEjs, how to get value of text box based on it's id 【发布时间】:2022-01-04 16:44:03 【问题描述】:我有two text boxes
,两个文本框都有价值。
但我想得到value of one text box based on id number
,我将输入它。
如果我输入1 it should show value of text box 1.
这是我尝试过的,现在它正在显示来自两个文本框的数据。
模板:
<input v-model="textdata1" id="1" type="text" placeholder="i am id1, show my value">
<input v-model="textdata2" id="2" type="text" placeholder="i am id2, show my value">
<input v-model="searchid" type="text" placeholder="which ids data you want, 1 or 2 ">
<button @click="getvalue">RECEIVE</button>
<div>show value of id 1or2 here: id1data</div>
VUEJS:
<script>
import defineComponent,ref from 'vue'
export default defineComponent(
setup()
const id1data =ref("");
const id2data =ref("");
function getvalue()
this.id1data=this.textdata1;
this.id2data=this.textdata2;
return
id1data,
id2data,
getvalue,
)
</script>
【问题讨论】:
为什么要专门ID?你已经在使用v-model
我想根据我的选择来获取数据,它可以是任何独特的。我认为 id 可以是唯一的,所以我试图通过 id 获取数据。
【参考方案1】:
如果您坚持使用 ID,可以使用以下方法:
<script>
import defineComponent, ref from "vue";
export default defineComponent(
setup()
const value = ref("");
const searchid = ref("");
const searchidinput = ref("");
function getvalue()
this.searchid = this.searchidinput
const el = document.getElementById(this.searchid);
if (el)
this.value = el.value
return
value,
searchid,
searchidinput,
getvalue,
;
,
);
</script>
<template>
<input id="1" type="text" placeholder="i am id1, show my value" />
<input id="2" type="text" placeholder="i am id2, show my value" />
<input v-model="searchidinput" type="text" placeholder="which ids data you want, 1 or 2 " />
<button @click="getvalue">RECEIVE</button>
<div>show value of id searchid ? searchid : "<none>" here:
value ? value : "none selected"
</div>
</template>
<style scoped>
a
color: #42b983;
</style>
【讨论】:
谢谢你,我猜这是通用方法,但我收到错误:searchidinput' 被赋值但从未使用过 我已经更新了代码来解决这个问题。 如果我输入 1 它显示来自文本框 1 的值,这很好,如果我输入 33 之后它仍然显示 id 1 的值。 添加一个 else 语句并将this.value
分配给您想要显示的任何内容
@Fayakon 也可以【参考方案2】:
这是一种方法。 您可以为每个输入创建一对数据值。
<script>
import defineComponent, ref from "vue";
export default defineComponent(
setup()
const textdata1 = ref("");
const id1data = ref("");
const textdata2 = ref("");
const id2data = ref("");
const searchid = ref("");
const searchidinput = ref("");
function getvalue()
this.searchid = this.searchidinput;
switch (this.searchid)
case "1":
this.id1data = this.textdata1;
break;
case "2":
this.id2data = this.textdata2;
break;
return
textdata1,
id1data,
textdata2,
id2data,
searchid,
searchidinput,
getvalue,
;
,
);
</script>
<template>
<input v-model="textdata1" id="1" type="text" placeholder="i am id1, show my value" />
<input v-model="textdata2" id="2" type="text" placeholder="i am id2, show my value" />
<input v-model="searchidinput" type="text" placeholder="which ids data you want, 1 or 2 " />
<button @click="getvalue">RECEIVE</button>
<div>show value of id searchid ? searchid : "<none>" here:
searchid === "1" ? id1data : searchid === "2" ? id2data : "none selected"
</div>
</template>
<style scoped>
a
color: #42b983;
</style>
为了简洁和组织目的,您也可以使用reactive()
。
【讨论】:
以上是关于VUEjs,如何根据它的id获取文本框的值的主要内容,如果未能解决你的问题,请参考以下文章