【发布时间】:2022-01-17 18:56:32
【问题描述】:
使用 vue,我有五个不同类别的输入字段。我想将每个输入字段传递给一个函数,操作值,然后将更新后的值分配给原始输入名称。
问题是,我无法弄清楚如何获取输入字段的值、执行功能并将修改后的值分配给与输入字段关联的对象。
编辑:用当前的努力更新了代码
<template>
<q-input
v-model="categoryOne"
name="categoryOne"
@change="onSelected($event, categoryOne)"
></q-input>
<q-input
v-model="categoryTwo"
name="categoryTwo"
@change="onSelected($event, categoryTwo)"
></q-input>
</template>
</script>
export default {
setup() {
let categoryOne = ref(null);
let categoryTwo = ref(null);
function onSelected(event, category) {
//how would I take the input of each category and perform an
action that updates the original value? The only way I can figure
this out is to do it one-by-one, which seems sloppy and loses a
lot
of intended functionality.
if (category === "categoryOne") { categoryOne.value =
categoryOne + 2 }
if (category === "categoryTwo") { categoryTwo.value =
categoryTwo + 2 }
}
}
</script>
【问题讨论】:
-
我认为你的问题没有得到任何回应的原因是它不清楚你的挑战是什么。您已经正确地将事件处理程序
onSelected连接到输入的@change事件......所以现在您可以在该事件处理程序中做任何您想做的事情。如果您需要有关如何做任何事情的帮助,您必须发布具体问题以及您尝试解决的问题。 -
明白。我试图用我所知道的来更新。我正在继续考虑
-
请显示 categoryOne 和 categoryTwo 的结构 - 这些是字符串......还是具有 .value 属性的对象?目前还不清楚。一方面,您将它们与输入一起使用,(并且由于未指定属性
type,它应该是一个字符串。然后您将类别作为您的第二个参数传递给您的 onSelected 函数......但是你没有使用它 - 你指的是 categoryOne 和 categoryTwo ...但是这些变量没有被声明。 -
categoryOne 和 categoryTwo 的值将是来自 q-input 文本字段的字符串输入。我已经更新以展示解决您的 cmets 的努力。虽然上述方法适用于手动过程(即需要分别处理每个类别),但我希望该函数能够应用于传入的任何对象,以更新对象的值。感谢您帮助解决这个问题!
标签: javascript vue.js