当前位置:首页 > VUE

vue表单实现

2026-01-13 08:21:25VUE

Vue 表单实现方法

双向数据绑定

使用 v-model 指令实现表单输入与应用状态的双向绑定,适用于各类表单控件。例如文本输入框:

<input v-model="message" placeholder="Edit me">
<p>Message is: {{ message }}</p>

复选框处理

单个复选框绑定布尔值,多个复选框绑定数组:

<input type="checkbox" id="checkbox" v-model="checked">
<label for="checkbox">{{ checked }}</label>

<input type="checkbox" id="jack" value="Jack" v-model="checkedNames">
<input type="checkbox" id="john" value="John" v-model="checkedNames">

单选按钮处理

通过 v-model 绑定选中的值:

<input type="radio" id="one" value="One" v-model="picked">
<input type="radio" id="two" value="Two" v-model="picked">

下拉选择框

单选和多选模式的处理:

vue表单实现

<select v-model="selected">
  <option disabled value="">Please select</option>
  <option>A</option>
  <option>B</option>
</select>

<select v-model="selected" multiple>
  <option>A</option>
  <option>B</option>
</select>

表单验证

结合计算属性或第三方库如 VeeValidate 进行验证:

data() {
  return {
    email: '',
    password: ''
  }
},
computed: {
  emailValid() {
    return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(this.email)
  }
}

表单提交

使用 @submit.prevent 阻止默认提交行为并处理数据:

vue表单实现

<form @submit.prevent="onSubmit">
  <input v-model="email">
  <button type="submit">Submit</button>
</form>

methods: {
  onSubmit() {
    if(this.emailValid) {
      // 提交逻辑
    }
  }
}

动态表单字段

通过 v-for 实现动态生成的表单字段:

<div v-for="(item, index) in items" :key="index">
  <input v-model="item.value">
  <button @click="removeItem(index)">Remove</button>
</div>
<button @click="addItem">Add Item</button>

表单修饰符

常用 v-model 修饰符:

  • .lazy:转为 change 事件后同步
  • .number:自动将输入转为数字
  • .trim:自动去除首尾空格
<input v-model.lazy="msg">
<input v-model.number="age">
<input v-model.trim="text">

第三方表单库

推荐使用专业表单处理库:

  • VeeValidate:提供声明式验证规则
  • Vuelidate:基于模型的轻量验证
  • Element UI/Ant Design Vue:包含预制表单组件

这些方法覆盖了 Vue 表单开发的主要场景,可根据具体需求选择合适方案。

标签: 表单vue
分享给朋友:

相关文章

vue实现下拉菜单

vue实现下拉菜单

实现下拉菜单的基本思路 使用Vue实现下拉菜单可以通过动态绑定v-show或v-if控制菜单显示隐藏,结合事件监听(如@click或@mouseenter)触发状态切换。以下是两种常见实现方式: 方…

vue实现tab换行

vue实现tab换行

Vue实现Tab切换的常见方法 使用Vue实现Tab切换功能可以通过多种方式完成,以下是几种常见的方法: 动态组件结合v-if或v-show 通过v-if或v-show控制不同Tab内容的显示与隐…

vue页面分离的实现

vue页面分离的实现

Vue页面分离的实现方法 将Vue页面分离为多个组件或模块,有助于提升代码可维护性和复用性。以下是几种常见的实现方式: 组件化拆分 通过将页面拆分为多个子组件,每个组件负责特定功能或UI部分。使用…

vue实现无线滚动列表

vue实现无线滚动列表

无限滚动列表的实现方法 在Vue中实现无限滚动列表通常结合监听滚动事件和动态加载数据。以下是几种常见方法: 使用自定义指令 创建自定义指令v-infinite-scroll监听滚动事件: Vu…

vue实现一个系统

vue实现一个系统

Vue 系统实现步骤 项目初始化与配置 使用 Vue CLI 或 Vite 创建项目: npm init vue@latest my-system 选择需要的配置(Router、Pinia 等)。…

vue实现关键词轮播

vue实现关键词轮播

Vue 实现关键词轮播 基础实现方案 使用 Vue 的 v-for 和 setInterval 实现基础轮播效果: <template> <div class="keyword…