zoukankan      html  css  js  c++  java
  • 表单控件绑定

    你可以用v-model指令在表单控件元素创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。尽管有些神奇,单v-model

    本质上不过是语法糖,它负责监听用户的输入事件以更新数据。并特别处理一些极端的例子。

    v-model并不关心表单控件初始化所生成的值。因为它会选择vue实例数据来作为具体的值。

    文本

    <input type='text' v-model="message" placeholder="edit me">

    <p>message is:{{message}}</p>

    多行文本

    <p style="white-space='prev'">{{multiline}}</p>

    <textarea v-model="multiline"></textarea>

    在文本区域插值(<textarea></textarea>)并不会生效,应用v-model来代替

    复选框

    单个勾选框,逻辑值:

    <input type="checkbox" v-model="checked" id="check1">
    
    <label for="check1">{{checked}}</label>
    data:{
    
      checked:false
    
    }

    多个复选框,绑定到同一个数组:

    <input type="checkbox" v-model="checkArr" value="1">1
    <input type="checkbox" v-model="checkArr" value="2">2
    <input type="checkbox" v-model="checkArr" value="3">3
    <input type="checkbox" v-model="checkArr" value="4">4
    <div>选中的数据:{{checkArr}}</div>
    data:{
    
      checkArr:[]
    
    }

    单选按钮:

    <input type="radio" v-model="radioChecked" value="1">喜欢
    <input type="radio" v-model="radioChecked" value="0">不喜欢
    <div>选中的数据是:{{radioChecked}}</div>
    data:{
    
      radioChecked:null
    
    }

    选择列表

    单选列表

    <select v-model="selected">
            <option vlaue="1">1</option>
            <option vlaue="2">2</option>
            <option vlaue="3">3</option>
            <option vlaue="4">4</option>
        </select>
        <div>{{selected}}</div>
    data:{
    selected:null
    }

    多选列表

    <select v-model="selectedArr" multiple>
            <option vlaue="1">1</option>
            <option vlaue="2">2</option>
            <option vlaue="3">3</option>
            <option vlaue="4">4</option>
        </select>
        <div>{{selectedArr}}</div>
    data:{
    
    selectedArr:[]
    
    }

    选择列表与v-for结合,动态选项,用v-for渲染

    <select v-model="selectedArr2" multiple>
            <option v-for="option in optionArr" v-bind:value="option.value">{{option.text}}</option>
        </select>
        <div>{{selectedArr2}}</div>
    data:{
    
      selectedArr2:[]
    
    }

    绑定value

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

    但是有时我们想绑定value到Vue实例的一个动态属性上,这时我们就可以使用v-bind实现,并且这个属性的值可以不是字符串

    复选框

     <input type="checkbox" v-model="checked1" v-bind:true-value="a" v-bind:false-value="b">动态绑定value值
        <div>选择的值是:{{checked1}}</div>
    data:{
    
      checked1:null,
    
      a:1,
    
      b:2
    
    }

    单选框

    <input type="radio" v-model="radio1" v-bind:value="a">true
        <input type="radio" v-model="radio1" v-bind:value="b">false
        <div>单选框选中的值:{{radio1}}</div>
    data:{
    
      radio1:null,
    
      a:1,
    
      b:2
    
    }

    选择列表设置:

     <select v-model="selected1">
            <option v-bind:value="a">a</option>
            <option v-bind:value="b">b</option>
            <option v-bind:value="c">c</option>
            <option v-bind:value="d">d</option>
        </select>
        <div>选择列表选择的数据:{{selected1}}</div>
    data:{
    
      selected1:null,
    
      a:1,
    
      b:2,
    
      c:3,
    
      d:4
    
    }

    内联对象字面量

     <select v-model="selected2">
            <option v-bind:value="{number:123}">a</option>
        </select>
        <div>选择列表选择的数据:{{selected2.number}}</div>
    data:{
      selected2:null
    }
    vm.selected2.number=123

    修饰符

    .lazy

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

    <!--在'change'而不是‘input’事件中更新-->
    
    <input v-model.lazy="message">

    .number

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

    <input v-model.number="number1" type='number'>

    这通常很有用,因为在type='number'时,HTML只能怪输入的值也总是会返回字符串类型。

    .trim

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

    <input type='text' v-model.trim="message">

  • 相关阅读:
    [性能调优]在PeopleSoft中使用函数索引
    如何在PeopleSoft中找到并更改默认样式表名称
    安装docker之后,测试hello-world镜像,终端提示:Unable to find image 'hello-world:latest' locally019-11-06
    ubuntu上安装docker
    ubuntu设置MySQL被局域网访问
    .Net Core使用 MiniProfiler 进行性能分析
    EF初次启动慢
    数据库最大连接池Max Pool Size
    SQLSERVER:Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
    EntityFramework中常用的数据删除方式
  • 原文地址:https://www.cnblogs.com/xiaofenguo/p/6553425.html
Copyright © 2011-2022 走看看