vue操作表单

本文介绍了Vue.js中如何操作表单,包括双向数据绑定的文本框、单选按钮、多选按钮、下拉列表的使用,以及表单域修饰符的应用,如:number、trim和lazy等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

表单操作

操作文本框

操作文本框使用双向数据绑定来操作文本框中的内容,如下代码所示:

<div class="container">
    <form action="#" method="POST">
        <!-- 双向数据绑定,可以通过 this 获取其中的值 -->
        <label for="uname"><input v-model="uname" type="text" name="uname"></label>
        <label for="upwd"><input v-model="upwd" type="text" name="upwd"></label>
        <input type="submit" value="提交" @click.prevent='submit'>
    </form>
</div>
let vm = new Vue({
    el: '.container',
    data: {
        uname: '',
        upwd: ''
    }, methods: {
        submit: function () {
            console.log(this.uname, this.upwd);
        }
    }
})

操作单选按钮

单选按钮仍然需要借助 v-model 指令实现,需要使 v-model 绑定同一个变量名,如下代码所示:

<div class="container">
    <form action="#" method="POST">
        <input type="radio" id="man" name="sex" value="" v-model="usex">
        <label for="man"></label>
      
        <input type="radio" id="woman" name="sex" value="" v-model="usex">
        <label for="woman"></label>
      
      	<input type="submit" value="提交" @click.prevent='submit'>
    </form>
</div>

上面代码中第 3 行和第 6 行创建了两个单选按钮,使用 v-model 指令绑定了同一个 usex 变量。JS 部分如下所示:

let vm = new Vue({
    el: '.container',
    data: {
        // 将 usex 设置为上面单选按钮中的 value 时,相应的单选按钮被选中
        usex: "女"
    }, methods: {
        submit: function () {
            console.log(this.usex);
        }
    }
})

在 Vue 实例中,将 usex 的值设置为了 ,页面渲染时被选中的单选按钮为设置的值。

操作多选按钮

操作多选按钮同需要使用 v-model 指令对属性进行绑定在操作多选按钮时 v-model 指令绑定的变量为数组类型

如下代码所示:

<div class="container">
    <form action="#" method="POST">
        <input type="checkbox" v-model="hobby" value="篮球" name="" id="1">
        <label for="1">篮球</label>
        <input type="checkbox" v-model="hobby" value="足球" name="" id="2">
        <label for="2">足球</label>
        <input type="checkbox" v-model="hobby" value="乒乓球" name="" id="3">
        <label for="3">乒乓球</label>
        <input type="submit" value="提交" @click.prevent='submit'>
    </form>
</div>
let vm = new Vue({
    el: '.container',
    data: {
        // 将 usex 设置为上面单选按钮中的 value 时,相应的单选按钮被选中
      	// 这里设置了篮球为默认值,则页面中“篮球”被选中
        hobby: ['篮球']
    }, methods: {
        submit: function () {
            console.log(this.hobby);
        }
    }
})

在这里插入图片描述

操作下拉列表

操作下拉列表需要在 select 标签中设置 v-model 指令。v-model 指令设置的变量为下拉列表选中的值。如下代码所示:

<div class="container">
    <form action="#" method="POST">
        <select v-model="city" name="" id="">
            <option value="河北">河北</option>
            <option value="湖南">湖南</option>
            <option value="北京">北京</option>
            <option value="天津">天津</option>
            <option value="上海">上海</option>
        </select>
        <input type="submit" value="提交" @click.prevent='submit'>
    </form>
</div>
let vm = new Vue({
    el: '.container',
    data: {
        city: '北京'
    }, methods: {
        submit: function () {
            console.log(this.city);
        }
    }
})

在代码中,将 city 的默认值设置为了 “北京”,页面打开时默认的值为北京,结果:
在这里插入图片描述

如果一个下拉列表中可以选择多个值,需要在 <select> 标签中加上 multiple 属性,表示允许选中多个值;相应的 JS 部分,需要将 city 对应的数据类型改为数组结构。如下代码所示:

<select v-model="city" name="" id="" multiple>
    <option value="河北">河北</option>
    <option value="湖南">湖南</option>
    <option value="北京">北京</option>
    <option value="天津">天津</option>
    <option value="上海">上海</option>
</select>
let vm = new Vue({
    el: '.container',
    data: {
        city: ['北京']
    }, methods: {
        submit: function () {
            console.log(this.city);
        }
    }
})

结果:
在这里插入图片描述

表单域修饰符

  • number :将文本框中的内容转为数值
  • trim :去掉开始和结尾的空格
  • lazy :将 input 事件改为 change 事件

input 事件:每次在输入框中键入文本时都会触发
change 事件:每次在输入框键入文本之后,失去焦点时触发

使用方式:

<input v-model.trim="str" type="text">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值