十五、Vue表单输入绑定

一.Vue初体验:https://blog.csdn.net/qq_43674132/article/details/104857216

二.Vue条件命令:https://blog.csdn.net/qq_43674132/article/details/104857322

三.Vue循环指令:https://blog.csdn.net/qq_43674132/article/details/104857517

四.Vue处理用户输入:https://blog.csdn.net/qq_43674132/article/details/104857651

五.Vue组件初体验:https://blog.csdn.net/qq_43674132/article/details/104857870

六.Vue实例:https://blog.csdn.net/qq_43674132/article/details/104857953

七.Vue模板语法:https://blog.csdn.net/qq_43674132/article/details/104858009

八.Vue计算属性:https://blog.csdn.net/qq_43674132/article/details/104858068

九.Vue.js侦听器:https://blog.csdn.net/qq_43674132/article/details/104860083

十.Vue.js的class绑定:https://blog.csdn.net/qq_43674132/article/details/104861826

十一.Vue style绑定:https://blog.csdn.net/qq_43674132/article/details/104877107

十二.Vue 条件渲染:https://blog.csdn.net/qq_43674132/article/details/104877177

十三.Vue 列表渲染:https://blog.csdn.net/qq_43674132/article/details/104877393

十四.Vue事件处理:https://blog.csdn.net/qq_43674132/article/details/104878173

十五.Vue表单输入绑定:https://blog.csdn.net/qq_43674132/article/details/104879776

十六.Vue中引用图片:https://blog.csdn.net/qq_43674132/article/details/107043105

Vue表单输入绑定

基础用法

你可以用 v-model 指令在表单 <input><textarea> 及 <select> 元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。尽管有些神奇,但 v-model本质上不过是语法糖。它负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理。

v-model 会忽略所有表单元素的 valuecheckedselected attribute 的初始值而总是将 Vue 实例的数据作为数据来源。你应该通过 JavaScript 在组件的 data 选项中声明初始值。

v-model 在内部为不同的输入元素使用不同的属性并抛出不同的事件:

  • text 和 textarea 元素使用 value 属性和 input 事件;
  • checkbox 和 radio 使用 checked 属性和 change 事件;
  • select 字段将 value 作为 prop 并将 change 作为事件。

对于需要使用输入法 (如中文、日文、韩文等) 的语言,你会发现 v-model 不会在输入法组合文字过程中得到更新。如果你也想处理这个过程,请使用 input 事件。

文本

<div id="app">
    <input type="text" v-model="message">
    <div>{{message}}</div>
</div>

image.png

image.png

多行文本

<textarea v-model="textarea" cols="30" rows="10"></textarea>
<p style="white-space: pre-line">{{textarea}}</p>

image.png

image.png

单个复选框

<input type="checkbox" value="多选" v-model="isRead">
<div>{{isRead}}</div>

效果如下图:


image.png

image.png

多个复选框

<input type="checkbox" value="足球" v-model="favorites">足球</input>
<input type="checkbox" value="篮球" v-model="favorites">篮球</input>
<input type="checkbox" value="爬山" v-model="favorites">爬山</input>
<input type="checkbox" value="玩游戏" v-model="favorites">玩游戏</input>
<div>{{favorites}}</div>

效果如下图:


image.png

image.png

单选按钮

 <input type="radio" value="男" v-model="gender">男 <input type="radio" value="女" v-model="gender">女
    <div>{{gender}}</div>

效果如下图:


image.png

image.png

下拉框

 <select v-model="edu">
        <option value="小学">小学</option>
        <option value="初中">初中</option>
        <option value="高中">高中</option>
    </select>
    <div>{{edu}}</div>

效果如下图:


image.png

image.png

下拉框多选

<select v-model="favorites" multiple>
        <option v-for="(f,index) in fs" v-bind:key="index" v-bind:value="f">{{f}}</option>
</select>

效果如下图:


image.png

image.png

值绑定

 <input type="checkbox" true-value="yes" false-value="no" v-model="toggle">
    <div>{{toggle}}</div>

效果如下图:


image.png

image.png

 

详细代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Vue的表单输入绑定</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
    <!--普通文本-->
    <input type="text" v-model="message">
    <div>{{message}}</div>
    <hr>
    <!--多行文本-->
    <textarea v-model="textarea" cols="30" rows="10"></textarea>
    <p style="white-space: pre-line">{{textarea}}</p>
    <hr>
    <!--单个复选框-->
    <input type="checkbox" value="多选" v-model="isRead">
    <div>{{isRead}}</div>
    <hr>
    <!--多个复选框-->
    <input type="checkbox" value="足球" v-model="favorites">足球</input>
    <input type="checkbox" value="篮球" v-model="favorites">篮球</input>
    <input type="checkbox" value="爬山" v-model="favorites">爬山</input>
    <input type="checkbox" value="玩游戏" v-model="favorites">玩游戏</input>
    <div>{{favorites}}</div>
    <hr>
    <!--单选按钮-->
    <input type="radio" value="男" v-model="gender">男 <input type="radio" value="女" v-model="gender">女
    <div>{{gender}}</div>
    <hr>
    <!--下拉框-->
    <select v-model="edu">
        <option value="小学">小学</option>
        <option value="初中">初中</option>
        <option value="高中">高中</option>
    </select>
    <div>{{edu}}</div>
    <hr>
    <!--下拉框多选-->
    <select v-model="favorites" multiple>
        <option v-for="(f,index) in fs" v-bind:key="index" v-bind:value="f">{{f}}</option>
    </select>
    <hr>
    <!--值绑定-->
    <input type="checkbox" true-value="yes" false-value="no" v-model="toggle">
    <div>{{toggle}}</div>
    <hr>
    <input type="text" v-model.lazy="message">
    <div>message</div>
</div>
<script>
    var app = new Vue({
        el:"#app",
        data:{
            message:"liqinggang",
            textarea:'',
            isRead:false,
            gender:'',
            favorites:[],
            edu:'小学',
            fs:[
                "足球",
                "篮球",
                "乒乓球"
            ],
            toggle:''
        }
        });
</script>
</body>
</html>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值