Vue之表单数据收集

简介

此文主要介绍使用Vue进行表单数据的收集,不同的表单元素会有一定小小的技巧。

v-model有三个常用的修饰符:

  • number:输入字符串转化为有效的数字,常用语文本输入。
  • lazy:失去焦点后才数据数据,常用语文本输入。
  • trim:对输入进行两边空格去掉,常用语文本输入。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>收集表单数据</title>
</head>
<body>
    <div id="root">
        <!-- 设置表单提交事件回调,并且阻止了表单提交的默认行为 -->
        <form @submit.prevent="printForm">
            <!-- 普通的文本输入框,如果使用ajax进行请求的发送,name属性不要也罢,这个没什么要注意的,主要是使用v-model来进行数据的双向绑定 -->
            <label>账号:</label><input type="text" name="account" v-model="account"> <br><br>
            <label>密码:</label><input type="password" name="password" v-model="password"><br><br>

            <!-- 单选框:
            1. 如果需要在多个数据中进行选择,需要为每个input单选框设置value属性值。
            2. 同一类型的单选框要设置一样的name属性。

            3. 如果只是一个单选框,用于勾选是否,比如是否同意某个协议等,值只有false和true,无需name,value,并且双向绑定数据为布尔值,
               true为选中,false为不选中。 -->
            <label>性别:</label><input type="radio" name="gender" v-model="gender" value="man"><input type="radio" name="gender" v-model="gender" value="woman"><br><br>


            <!-- 多选框:
            1. 如果需要在多个数据中进行选择,需要为每个input单选框设置value属性值。
            2. 同一类型的单选框要设置一样的name属性。
            3. 与该表单元素进行双向绑定的数据类型要为数组。

            4. 如果只是一个多选框,用于勾选是否,比如是否同意某个协议等,值只有false和true,无需name,value,并且双向绑定数据为布尔值,
               true为选中,false为不选中。  -->
            <label>爱好:</label>
            学习<input type="checkbox" name="hobby" v-model="hobby" value="学习">
            游泳<input type="checkbox" name="hobby" v-model="hobby" value="游泳">
            听音乐<input type="checkbox" name="hobby" v-model="hobby" value="听音乐"><br><br>

            <!-- 下拉框:
            1. v-model双向绑定要在select标签完成。
            2. 每个option子标签要设置value -->
            <label>所在地区:</label>
            <select name="address" v-model="address">
                <option value="">请选择地区</option>
                <option value="北京">北京</option>
                <option value="上海">上海</option>
                <option value="深圳">深圳</option>
                <option value="广州">广州</option>
            </select>
            <br><br>
            <!-- 多行输入:与单行输入类似 -->
            <label>其他信息:</label>
            <textarea v-model="otherInfo" ></textarea><br><br>

            <!-- 多选框的另外一种使用方式,仅仅用于判断是否勾选。 -->
            <label>是否同意协议:</label>
            <input type="checkbox" v-model="isAgree">阅读并接受<a href="https://www.baidu.com" target="_blank">用户协议</a><br><br>
            <button>控制台输出收集的表单数据</button>

        </form>
    </div>

    <script src="./js/vue.js"></script>
    <script>
        new Vue({
            el:"#root",
            data:{
                account:"",
                password:"",
                gender:"",
                hobby:[],
                address:"",
                otherInfo:"",
                isAgree:false
            },
            methods: {
                printForm(){
                    console.log(JSON.stringify(this._data));
                }
            },
        })
    </script>
</body>
</html>

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值