gpt4 book ai didi

javascript - 以编程方式在 vue 中创建表单

转载 作者:行者123 更新时间:2023-11-30 20:41:27 24 4
gpt4 key购买 nike

我想问用户他想创建多少个点,然后得到每个点的坐标。

我尝试创建一个初始文本字段来获取多少点,然后创建一个循环来创建每个表单。它有效,但我不知道如何获取每个表单值。

如何获取每个表单的值?或者有更好的方法吗? enter image description here

   <template>
<div>
<v-card class="mb-3">
<v-card-text>
<v-text-field label="How many nodes" :value="nodes" @input="onInput" type="number"></v-text-field>
</v-card-text>
</v-card>
<v-container fluid grid-list-md>
<v-layout row wrap>
<template v-for="i in nodes">
<v-flex :key="i" xs12 md3>
<div>
<v-card class="mb-3">
<v-card-text>
<div>Node {{i}}</div>
<v-text-field label="Coord X" value="x1" @input="getValues" type="number" v-model="no1"></v-text-field>
<v-text-field label="Coord Y" :value="y1" @input="getValues" type="number"></v-text-field>
</v-card-text>
</v-card>
</div>
</v-flex>
</template>
</v-layout>
</v-container>
</div>
</template>
<script>
export default {
data () {
return {
nodes: 2
}
},
methods: {
onInput (val) {
this.nodes = parseInt(val)
}
}
}
</script>

最佳答案

我认为这是一个更好的方法:

   <template>
<div>
<v-card class="mb-3">
<v-card-text>
<v-text-field label="How many nodes" v-model="nodes" type="number"></v-text-field>
</v-card-text>
</v-card>
<v-container fluid grid-list-md>
<v-layout row wrap>
<template v-for="(node, index) in nodesArr">
<v-flex :key="i" xs12 md3>
<div>
<v-card class="mb-3">
<v-card-text>
<div>Node {{index + 1}}</div>
<v-text-field label="Coord X" v-model="node[index].coordX" type="number" v-model="no1"></v-text-field>
<v-text-field label="Coord Y" v-model="node[index].coordY" type="number"></v-text-field>
</v-card-text>
</v-card>
</div>
</v-flex>
</template>
</v-layout>
</v-container>
</div>
</template>
<script>
export default {
data () {
return {
nodes: 0,
nodesArr: []
}
},
watch: {
nodes(newVal) {
this.nodesArr = [];
for(var i=0; i<this.nodes; i++){
this.nodesArr.push({coordX: "", coordY: ""});
}
}
},
methods: {
}
}
</script>

发生了什么:

  1. 在输入上设置一个 v-model,它获取节点数并将其绑定(bind)到 nodes 属性。

  2. 初始化了一个新属性 nodesArr : [] 将用于循环显示每个 Coord 输入

  3. nodes 上设置一个 watcher,循环遍历输入的节点数并推送这些对象 {coordX: "", coordY: ""}nodesArr数组

  4. 我们使用 v-for="(node, index) in nodesArr" 遍历 nodesArr 以显示 x 坐标和 y 坐标的输入

  5. x 坐标输入绑定(bind)到相应的 coordX 属性,利用我们在 v-for 中获得的 index
  6. 同样,y 坐标输入绑定(bind)到相应的 coordY 属性,利用 index 我们在 v-for<
  7. 由于输入是使用 v-model 进行双向绑定(bind)的,因此您可以在 nodesArr 属性中拥有所有输入数据,您可以随意使用

关于javascript - 以编程方式在 vue 中创建表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49206826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com