视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Vue学习笔记之表单输入控件绑定
2020-11-27 22:31:00 责编:小采
文档


表单输入绑定

基础用法

文本

<input v-model:"msg" placeholder="edit me"/>

### 多行文本

<textarea name="" id="" cols="30" rows="10" v-model:"msg"></textarea>

### 复选框

爱好

<input type="checkbox" value="看电影" v-model="checked"/>
<input type="checkbox" value="打游戏" v-model="checked"/>
<input type="checkbox" value="音乐" v-model="checked"/>
{{ checked }} 

var vm=new Vue({
 el:'#app',
 date:{
 checked:[]
 }, 

单选按钮

性别

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

var vm=new Vue({
 el:'#app',
 date:{
 picked: ''
 },

选择列表

单选列表

户口    

 <select v-model="selected">
 <option disabled value="">请选择</option>
 <option>河北</option>
 <option>山西</option>
 <option>北京</option> 
 </select>
{{ selected }} 

var vm=new Vue({
 el:'#app',
 date:{
 selected:'',
 }, 

多选列表(绑定到一个数组):

<div id="example-6">
 <select v-model="selected" multiple style="width: 50px">
 <option>A</option>
 <option>B</option>
 <option>C</option>
 </select>
 <br>
 <span>Selected: {{ selected }}</span>
</div> 
new Vue({
 el: '#example-6',
 data: {
 selected: []
 }
}) 

绑定 value

对于单选按钮,勾选框及选择列表选项, v-model 绑定的 value 通常是静态字符串(对于勾选框是逻辑值):

<!-- 当选中时,`picked` 为字符串 "a" -->
<input type="radio" v-model="picked" value="a">
<!-- `toggle` 为 true 或 false -->
<input type="checkbox" v-model="toggle">
<!-- 当选中时,`selected` 为字符串 "abc" -->
<select v-model="selected">
 <option value="abc">ABC</option>
</select> 

复选框

<input
 type="checkbox"
 v-model="toggle"
 v-bind:true-value="a"
 v-bind:false-value="b"
> 

// 当选中时
vm.toggle === vm.a
// 当没有选中时
vm.toggle === vm.b

单选按钮 

<input type="radio" v-model="pick" v-bind:value="a"> 

// 当选中时
vm.pick === vm.a 

选择列表设置

<select v-model="selected">
 <!-- 内联对象字面量 -->
 <option v-bind:value="{ number: 123 }">123</option>
</select> 

// 当选中时
typeof vm.selected // => 'object'
vm.selected.number // => 123 

修饰符

.lazy

在默认情况下, v-model 在 input 事件中同步输入框的值与数据 (除了 上述 IME 部分),但你可以添加一个修饰符 lazy ,从而转变为在 change 事件中同步:

 {{msg}}
<input type="text" v-model.lazy:"msg"/> 

.number

如果想自动将用户的输入值转为 Number 类型,可以添加一个修饰符 number 给 v-model 来处理输入值:

{{num1}}
<input type="text" v-model.number:"num1"/> 
{{num2}}
<input type="text" v-model.number:"num2"/> 

{{num1+num2}} 

var vm=new Vue({
 date:{
 num1:1,
 num2:1
 },
}); 

.trim

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

 {{msg}}
<input type="text" v-model.lazy.trim:"msg"/> 

下载本文
显示全文
专题