Vue 学习笔记之 —— 表单输入绑定

Vue 中文文档 https://cn.vuejs.org/

不多说,直接上干货。

v-model 指定,用来在input textarea 等表单元素上创建双向数据绑定,负责监听用户的输入事件,以及更新数据。

1. 文本绑定:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="" id="form1">
<input type="text" v-model="message">
<h3>{{message}}</h3>
</form>
<script src="../lib/vue.js"></script>
<script !src="">
    var Vue = new Vue({
        el: "#form1",
        data: {
            message: ""
        }
    })
</script>
</body>
</html>

  

input中更改文本,h3 里也会相应更改。

2.复选框:

<form action="" id="form1">
    <label>
        Jack:<input type="checkbox" value="Jack" v-model="checkedNames">
    </label>
    <label>
        John:<input type="checkbox" value="John" v-model="checkedNames">
    </label>
    <label>
        Mike:<input type="checkbox" value="Mike" v-model="checkedNames">
    </label>
    <br>
    <span>{{checkedNames}}</span>
</form>

<script src="../lib/vue.js"></script>
<script !src="">
    var Vue = new Vue({
        el: "#form1",
        data: {
            checkedNames: []
        }
    })
</script>

  多个复选框,绑定到同一个数组,选中,则数组添加该项,反之,则数组删除该项。

3.单选框:

<form action="" id="form1">
    <label for="">
        boy: <input type="radio" v-model="sex" value="boy">
    </label>
    <label for="">
        girl: <input type="radio" v-model="sex" value="girl">
    </label>
    <br>
    <span>{{sex}}</span>
</form>

<script src="../lib/vue.js"></script>
<script !src="">
    var Vue = new Vue({
        el: "#form1",
        data: {
          sex:""
        }
    })
</script>

  

用v-model来代替原本的name即可。

4.选择框:

<form action="" id="form1">
    <select v-model="selected">
        <option disabled value="">请选择</option>
        <option>A</option>
        <option>B</option>
        <option>C</option>
    </select>
    <br>
    <span>Selected: {{ selected }}</span>
</form>

<script src="../lib/vue.js"></script>
<script !src="">
    var Vue = new Vue({
        el: "#form1",
        data: {
            selected:""
        }
    })
</script>

  

当然,我们要给option,id值,而此时,我们给data中的selected赋值某一option项的id值,则默认选中此项

<form action="" id="form1">
    <select v-model="selected">
        <option disabled value="">请选择</option>
        <option value="A">A</option>
        <option value="B">B</option>
        <option value="C">C</option>
    </select>
    <br>
    <span>Selected: {{ selected }}</span>
</form>

<script src="../lib/vue.js"></script>
<script !src="">
    var Vue = new Vue({
        el: "#form1",
        data: {
            selected: "B"
        }
    })
</script>

  使用v-for 动态渲染:

<form action="" id="form1">
    <select v-model="selected">
        <option  v-for="option in options" :value="option.value">
            {{option.text}}
        </option>
    </select>
    <br>
    <span>Selected: {{ selected }}</span>
</form>
<script src="../lib/vue.js"></script>
<script !src="">

    var Vue = new Vue({
        el: "#form1",
        data: {
            selected:"C",
            options: [
                {
                text: "One", value: "A",
                }, {
                text: "Two", value: "B",
                }, {
                text: "Three", value: "C",
                }]
        }
    })
</script>

  

 

 三种修饰符:

.lazy:在默认情况下,v-model 在每次 input 事件触发后将输入框的值与数据进行同步 。可以添加 lazy 修饰符,从而转变为使用 change 事件进行同步:

<!-- 在“change”时而非“input”时更新 -->
<input v-model.lazy="msg" >

.number:如果想自动将用户的输入值转为数值类型,可以给 v-model 添加 number 修饰符:

<input v-model.number="age" type="number">

.trim:如果要自动过滤用户输入的首尾空白字符,可以给 v-model 添加 trim 修饰符:

<input v-model.trim="msg">
posted @ 2018-04-16 10:06  Sky_Ice  阅读(188)  评论(0编辑  收藏  举报