java1234开源博客系统
博客信息

vue表单处理

0
发布时间:『 2019-07-05 17:02』  博客类别:Vue.js  阅读(2262) 评论(0)

vue表单处理


vue对html表单提供了强大支持,主要包括值绑定,以及修饰符对数据控制;


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


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


text 和 textarea 元素使用 value 属性和 input 事件;

checkbox 和 radio 使用 checked 属性和 change 事件;

select 字段将 value 作为 prop 并将 change 作为事件。


基本用法



<h2>文本</h2>

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

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

    <h2>多行文档</h2>

    <span>Multiline message is:</span>

    <p style="white-space: pre-line;">{{ message }}</p>

    <br>

    <textarea v-model="message" placeholder="add multiple lines"></textarea>

    <h2>复选框</h2>

    <input type="checkbox" id="checkbox" v-model="checked">

    <label for="checkbox">{{ checked }}</label>

    <h2>多个复选框</h2>

    <input type="checkbox" id="jack" value="Jack" v-model="checkedNames">

    <label for="jack">Jack</label>

    <input type="checkbox" id="john" value="John" v-model="checkedNames">

    <label for="john">John</label>

    <input type="checkbox" id="mike" value="Mike" v-model="checkedNames">

    <label for="mike">Mike</label>

    <br>

    <span>Checked names: {{ checkedNames }}</span>

    <h2>单选按钮</h2>

    <input type="radio" id="one" value="One" v-model="picked">

    <label for="one">One</label>

    <br>

    <input type="radio" id="two" value="Two" v-model="picked">

    <label for="two">Two</label>

    <br>

    <span>Picked: {{ picked }}</span>

    <h2>选择框(单选)</h2>

    <select v-model="selected">

        <option disabled value="">请选择</option>

        <option>A</option>

        <option>B</option>

        <option>C</option>

    </select>

    <span>Selected: {{ selected }}</span>

    <h2>选择框(多选)</h2>

    <select v-model="selected" multiple style="width: 50px;">

        <option>A</option>

        <option>B</option>

        <option>C</option>

    </select>

    <br>

    <span>Selected: {{ selected }}</span>

    <h2>用 v-for 渲染的动态选项:</h2>

    <select v-model="selected">

        <option v-for="option in options" v-bind:value="option.value">

            {{ option.text }}

        </option>

    </select>

    <span>Selected: {{ selected }}</span>



new Vue({

el:'#app',

data:{

message: '',

checked:false,

checkedNames: [],

picked: '',

selected: '',

options: [

{ text: 'One', value: 'A' },

{ text: 'Two', value: 'B' },

{ text: 'Three', value: 'C' }

]

}

});



QQ鎴浘20190705144551.jpg




值绑定

对于单选按钮,复选框及选择框的选项,v-model 绑定的值通常是静态字符串 (对于复选框也可以是布尔值):


<!-- 当选中时,`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>


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

<div id="app">


    <h3>值绑定</h3>

    <h2>复选框</h2>

    <input

            type="checkbox"

            v-model="toggle"

            true-value="yes"

            false-value="no"

    >

    <h2>单选框</h2>

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


    <h2>下拉框内联对象</h2>

    <select v-model="selected">

        <!-- 内联对象字面量 -->

        <option v-bind:value="{ number: 123 }">123</option>

    </select>

</div>

<script type="text/javascript" src="js/vue2.6.js"></script>

<script type="text/javascript">


    new Vue({

        el:'#app',

        data:{

            toggle:'',

            pick:'',

            a:'aa',

            selected:null

        }

    });

</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">

这通常很有用,因为即使在 type="number" 时,HTML 输入元素的值也总会返回字符串。如果这个值无法被 parseFloat() 解析,则会返回原始的值。


.trim

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


<input v-model.trim="msg">



关键字:   vue     表单处理  

上一篇:es6 Symbol类型

下一篇:vue生命周期

关注Java1234微信公众号
博主信息
Java1234_小锋
(知识改变命运,技术改变世界)
Powered by Java1234 V3.0 Copyright © 2012-2016 Java知识分享网 版权所有