VUE框架画出一组表单form实现数据收集并以json的形式回传------VUE框架

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/vue.js"></script>
</head>
<body>
    <div id="app">
        <!-- 不让跳转方式1,直接JS代码封死跳转 -->
        <!-- 不让跳转方式2,让submit执行时不是提交而是执行方法 -->
        <form action="javascript:void(0)" @submit="send()">
            <!-- v-model加上.trim可以实现取出前后部分的空白 -->
            用户名<input type="text" v-model.trim="user.username"/><br><br>
            密码<input type="password" v-model="user.password"/><br><br>
            <!-- v-model.number可以将收集到的字符串转换为数字 -->
            年龄<input type="number" v-model.number="user.age"/><br><br>
            性别:
            男<input type="radio" name="gender" value="men" v-model="user.gender"/>
            女<input type="radio" name="gender" value="women" v-model="user.gender"/>
            <br><br>
            爱好
            <!-- 对于checkbox来说,如果没有手动指定value,那么默认以这个标签的checked作为value -->
            旅游<input type="checkbox" value="trip" v-model="user.hobbies"/>
            运动<input type="checkbox" value="sprots" v-model="user.hobbies"/>
            唱歌<input type="checkbox" value="sing" v-model="user.hobbies"/>
            <br><br>
            学历
            <select v-model="user.grade">
                <option value="">请选择学历</option>
                <option value="zk">专科</option>
                <option value="bk">本科</option>
                <option value="ss">硕士</option>
            </select>
            <br><br>
            简介
            <!-- 最好使用lazy,这样可以节省资源,让这个数据在我们离开光标即onblur的情况下再收集,避免浪费资源 -->
            <textarea cols="50" rows="15" v-model.trim.lazy="user.introduce"></textarea>
            <br><br>
            <input type="checkbox" v-model="user.accept"/>阅读并接受协议
            <br><br>
            <!-- 用阻止方法也是一样的 -->
            <button @click.prevent="send()">提交</button>
        </form>
    </div>
    <script>
        const vm = new Vue({
            el : "#app",
            data : {
                user : {
                    username : "",
                    password : "",
                    age : "",
                    gender : "",
                    hobbies : [],
                    grade : "",
                    introduce : "",
                    accept : ""
                },
            },
            methods : {
                send(){
                    alert("ajax...");
                    console.log(JSON.stringify(this.$date));
                    console.log(JSON.stringify(this.user));
                }
            }
        });
    </script>
</body>
</html>

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <script src="../js/vue.js"></script>

</head>

<body>

    <div id="app">

        <!-- 不让跳转方式1,直接JS代码封死跳转 -->

        <!-- 不让跳转方式2,让submit执行时不是提交而是执行方法 -->

        <form action="javascript:void(0)" @submit="send()">

            <!-- v-model加上.trim可以实现取出前后部分的空白 -->

            用户名<input type="text" v-model.trim="user.username"/><br><br>

            密码<input type="password" v-model="user.password"/><br><br>

            <!-- v-model.number可以将收集到的字符串转换为数字 -->

            年龄<input type="number" v-model.number="user.age"/><br><br>

            性别:

            男<input type="radio" name="gender" value="men" v-model="user.gender"/>

            女<input type="radio" name="gender" value="women" v-model="user.gender"/>

            <br><br>

            爱好

            <!-- 对于checkbox来说,如果没有手动指定value,那么默认以这个标签的checked作为value -->

            旅游<input type="checkbox" value="trip" v-model="user.hobbies"/>

            运动<input type="checkbox" value="sprots" v-model="user.hobbies"/>

            唱歌<input type="checkbox" value="sing" v-model="user.hobbies"/>

            <br><br>

            学历

            <select v-model="user.grade">

                <option value="">请选择学历</option>

                <option value="zk">专科</option>

                <option value="bk">本科</option>

                <option value="ss">硕士</option>

            </select>

            <br><br>

            简介

            <!-- 最好使用lazy,这样可以节省资源,让这个数据在我们离开光标即onblur的情况下再收集,避免浪费资源 -->

            <textarea cols="50" rows="15" v-model.trim.lazy="user.introduce"></textarea>

            <br><br>

            <input type="checkbox" v-model="user.accept"/>阅读并接受协议

            <br><br>

            <!-- 用阻止方法也是一样的 -->

            <button @click.prevent="send()">提交</button>

        </form>

    </div>

    <script>

        const vm = new Vue({

            el : "#app",

            data : {

                user : {

                    username : "",

                    password : "",

                    age : "",

                    gender : "",

                    hobbies : [],

                    grade : "",

                    introduce : "",

                    accept : ""

                },

            },

            methods : {

                send(){

                    alert("ajax...");

                    console.log(JSON.stringify(this.$date));

                    console.log(JSON.stringify(this.user));

                }

            }

        });

    </script>

</body>

</html>

  • 27
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值