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获取文本框的值的主要内容,如果未能解决你的问题,请参考以下文章

eclipse如何创建文本框并获取它的信息

文本框的值改变了,js怎么获取

用JS怎样获取文本框的值

如何用Jquery获取到文本框的值然后局部刷新

c++获取文本框的值

如何在同一视图中获取剃刀文本框的值?