keke2015 2023-02-23 00:10 采纳率: 0%
浏览 30

各位,vue 如何用同一个函数为不同的输入框赋值

各位,我有很多个input, 后面带一个按钮,当我点击其中一个input后面的按钮时,只给这个input赋值,其他input不变。按钮需绑定同一个函数。

<template>
    <input type="text" v-model:value="value1" style="width: 200px" />
    <button  @click="onClick(value1)">Submit</button>
      <input type="text" v-model:value="value2" style="width: 200px" />
    <button  @click="onClick(value2)">Submit</button>
      笨写法
<input type="text" v-model:value="value3" style="width: 200px" />
    <button  @click="onClick2(1)">Submit</button>
      <input type="text" v-model:value="value4" style="width: 200px" />
    <button  @click="onClick(2)">Submit</button>
</template>
<script lang="ts" setup>
import { ref, triggerRef } from 'vue';
let value1 = ref<string>('');
const value2 = ref<string>('');
const value3 = ref<string>('');
const value4 = ref<string>('');
const onClick = (searchValue: string) => {
  searchValue = 'ssss';//不起作用
};
//笨写法
const onClick2 = (num: number) => {
  switch (num) {
    case 1:
      value3.value = "s"
      break;
    case 2:
      value4.value = "a"
      break;
  }
};
</script>
  • 写回答

5条回答 默认 最新

  • jjdkdkdk 2023-02-23 02:30
    关注

    您可以使用 v-model 指令结合计算属性来为多个输入框绑定同一个函数。

    首先,为了将多个输入框绑定到同一个计算属性上,您需要使用 v-model 指令将每个输入框与同一个变量绑定。例如:

    <input type="text" v-model="myValue" />
    <input type="text" v-model="myValue" />
    <input type="text" v-model="myValue" />
    

    接下来,在 Vue 组件的 computed 选项中定义一个计算属性来设置 myValue 的值。您可以使用此计算属性来为每个输入框提供一个单一的数据源:

    computed: {
      myValue: {
        get() {
          return this.sharedValue;
        },
        set(newValue) {
          this.sharedValue = newValue;
        },
      },
    },
    data() {
      return {
        sharedValue: '',
      };
    },
    

    在上面的代码中,myValue 计算属性使用 sharedValue 数据属性作为其源。在获取器函数中,它返回 sharedValue 的值,而在设置器函数中,它将 sharedValue 设置为新值。这意味着无论哪个输入框更新了 myValue,它们实际上都在更新 sharedValue,因此所有输入框都会同步更新。

    请注意,使用此模式,您不必在模板中为每个输入框定义一个单独的数据属性,因为它们都使用相同的计算属性和数据属性。

    评论

报告相同问题?

问题事件

  • 修改了问题 2月23日
  • 修改了问题 2月23日
  • 创建了问题 2月23日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。