当前位置:首页 > VUE

vue实现多行多个表单

2026-02-25 21:07:04VUE

Vue 实现多行多个表单的方法

使用 v-for 动态生成表单

通过 v-for 指令循环生成多行表单,结合数组管理表单数据。适合动态增减表单行的场景。

<template>
  <div>
    <div v-for="(form, index) in forms" :key="index">
      <input v-model="form.name" placeholder="姓名">
      <input v-model="form.age" placeholder="年龄">
      <button @click="removeForm(index)">删除</button>
    </div>
    <button @click="addForm">添加表单</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      forms: [{ name: '', age: '' }]
    }
  },
  methods: {
    addForm() {
      this.forms.push({ name: '', age: '' })
    },
    removeForm(index) {
      this.forms.splice(index, 1)
    }
  }
}
</script>

使用组件化方式

将单行表单封装为组件,通过父组件管理多行数据。适合复杂表单结构。

<!-- FormRow.vue -->
<template>
  <div>
    <input v-model="formData.name">
    <input v-model="formData.age">
  </div>
</template>

<script>
export default {
  props: ['formData']
}
</script>

<!-- Parent.vue -->
<template>
  <div>
    <FormRow 
      v-for="(form, index) in forms"
      :key="index"
      :formData="form"
    />
    <button @click="addRow">添加行</button>
  </div>
</template>

使用 Vuex 管理表单状态

当表单需要跨组件共享状态时,可以使用 Vuex 集中管理。

// store.js
export default new Vuex.Store({
  state: {
    forms: []
  },
  mutations: {
    ADD_FORM(state, form) {
      state.forms.push(form)
    }
  }
})

表单验证处理

结合 vee-validate 或自定义验证方法实现多行表单验证。

<template>
  <div v-for="(item, index) in items">
    <input 
      v-model="item.value" 
      :name="`items[${index}].value`"
      v-validate="'required'"
    >
    <span>{{ errors.first(`items[${index}].value`) }}</span>
  </div>
</template>

提交多行表单数据

处理表单提交时,将数组格式的数据发送到后端。

vue实现多行多个表单

methods: {
  submit() {
    axios.post('/api/submit', { forms: this.forms })
      .then(response => {
        // 处理响应
      })
  }
}

标签: 多个表单
分享给朋友:

相关文章

vue 实现表单

vue 实现表单

Vue 表单实现方法 Vue.js 提供了多种方式实现表单,包括双向数据绑定、表单验证和动态表单生成。以下是常见的实现方法: 基础表单绑定 使用 v-model 指令实现表单元素与数据的双向绑定:…

jquery提交表单

jquery提交表单

使用 jQuery 提交表单 jQuery 提供了多种方法来提交表单,以下是常见的几种实现方式: 监听表单提交事件 通过监听表单的 submit 事件,可以阻止默认提交行为并执行自定义逻辑(如 Aj…

vue新增表单实现

vue新增表单实现

Vue 新增表单实现方法 数据绑定与表单结构 使用v-model实现双向数据绑定,在<script>中定义表单数据对象: data() { return { formData…

vue表单实现全选

vue表单实现全选

Vue 表单实现全选功能 在 Vue 中实现表单全选功能,通常涉及一个全选复选框和多个子复选框。以下是实现方法: 基本实现 数据绑定 使用 v-model 绑定全选复选框和子复选框的状态,子复选框…

vue实现动态表单

vue实现动态表单

Vue 动态表单实现方法 使用 v-for 动态渲染表单字段 通过遍历数组动态生成表单项,数据驱动视图变化。表单字段配置可存储在数组中,修改数组即可实现表单动态更新。 <template>…

vue实现表单收集

vue实现表单收集

Vue 表单收集实现方法 双向数据绑定(v-model) 使用 v-model 指令实现表单元素与 Vue 实例数据的双向绑定。适用于大多数表单控件类型。 <template> &l…