zoukankan      html  css  js  c++  java
  • Vue.js — 表单输入绑定

    1.表单输入绑定

    你可以用v-model指令在表单<input><textarea><select>元素上创建双向数据绑定。
    v-model会忽略所有表单元素的valuecheckedselected特性的初始值而总是将 Vue 实例的数据作为数据来源。

    1.1 文本

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">      
            <style>
                
            </style>
            <script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
        </head>
        <body>
    		<div id="app">
    			<!-- 文本 -->
    			<input v-model="message1" placeholder="编辑...">
    			<p>单行文本:{{ message1 }}</p>
    			<!-- 多行文本 -->
    			<textarea v-model="message2" placeholder="编辑..."></textarea>			
    			<p style="white-space: pre-line;">多行文本:{{ message2 }}</p>
    		</div>
            <script>
    			new Vue({
    				el: '#app',
    				data: {
    					message1: '',
    					message2: ''
    				}
    			})
            </script>
        </body>
    </html>
    

    1.2 复选框

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">      
            <style>
                
            </style>
            <script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
        </head>
        <body>
    		<div id="app">
    			<!-- 单个复选框 -->
    			<input type="checkbox" id="checkbox" v-model="checked">
    			<label for="checkbox">{{ checked }}</label>
    			<br/><br/>
    			<!-- 多个复选框 -->
    			<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/><br/>
    			<span>选中的名字:{{ checkedNames }}</span>
    		</div>
            <script>
    			new Vue({
    				el: '#app',
    				data: {
    					checked: true,
    					checkedNames: []
    				}
    			})
            </script>
        </body>
    </html>
    

    1.3 单选按钮

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">      
            <style>
                
            </style>
            <script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
        </head>
        <body>
    		<div id="app">
    			<input type="radio" id="one" value="One" v-model="picked">
    			<label for="one">One</label>			
    			<input type="radio" id="two" value="Two" v-model="picked">
    			<label for="two">Two</label>
    			<br>
    			<div style="margin: 5px;">选中的:{{ picked }}</div>
    		</div>
            <script>
    			new Vue({
    				el: '#app',
    				data: {
    					picked: ''
    				}
    			})
            </script>
        </body>
    </html>
    

    1.4 选择框

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">      
            <style>
                
            </style>
            <script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
        </head>
        <body>
    		<div id="app">
    			<select v-model="selected">
    				<option disabled value="">请选择</option>
    				<option>A</option>
    				<option>B</option>
    				<option>C</option>
    			</select>
    			<span>选择的:{{ selected }}</span>
    		</div>
            <script>
    			new Vue({
    				el: '#app',
    				data: {
    					selected: ''
    				}
    			})
            </script>
        </body>
    </html>
    
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">      
            <style>
                
            </style>
            <script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
        </head>
        <body>
    		<div id="app">
    			<select v-model="selected">
    				<option v-for="option in options" v-bind:value="option.value">
    					{{ option.text }}
    				</option>
    			</select>
    			<span>选择的:{{ selected }}</span>
    		</div>
            <script>
    			new Vue({
    				el: '#app',
    				data: {
    					selected: 'A',
    					options: [
    						{text: 'One', value: 'A'},
    						{text: 'Two', value: 'B'},
    						{text: 'Three', value: 'C'},
    					]
    				}
    			})
            </script>
        </body>
    </html>
    

    1.5 值绑定

    对于单选按钮,复选框及选择框的选项,v-model绑定的值通常是静态字符串(对于复选框也可以是布尔值)。
    但是有时我们可能想把值绑定到 Vue 实例的一个动态属性上,这时可以用v-bind实现,并且这个属性的值可以不是字符串。

    <!-- 当选中时,`picked` 为字符串 "a" -->
    <input type="radio" v-model="picked" value="a">
    
    <!-- `toggle` 为 true 或 false -->
    <!-- `toggle` 为 true 时选中,`toggle` 为 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" true-value="yes" false-value="no">
    <script>
    	// ...
    	// 当选中时
    	vm.toggle === 'yes'
    	// 当没有选中时
    	vm.toggle === 'no'
    </script>
    

    1.6 修饰符

    • .lazy
    • .number
    • .trim
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">      
            <style>
                
            </style>
            <script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
        </head>
        <body>
    		<div id="app">
    			<input v-model.lazy="message1" placeholder="编辑...">
                <p>单行文本:{{ message1 }}</p>
    			<input v-model.number="age" type="number">
    			<p>{{ typeof age }}</p>
    			<input v-model.trim="msg">
    			<p>{{ msg }}</p>
    		</div>
            <script>
    			new Vue({
    				el: '#app',
    				data: {
    					message1: '',
    					age: 0,
    					msg: ''
    				}
    			})
            </script>
        </body>
    </html>
    

    .lazy修饰符将input事件转变为change事件;.number修饰符将用户输入的值转为数值类型;.trim修饰符过滤用户输入的首尾空白字符。

    参考:

  • 相关阅读:
    夺命雷公狗---DEDECMS----21dedecms按照地区取出电影内容
    夺命雷公狗---DEDECMS----20dedecms取出栏目页对应的内容
    夺命雷公狗---DEDECMS----19dedecms栏目列表页的完成
    夺命雷公狗---DEDECMS----18dedecms之无可奈何标签-sql标签取出今天更新
    mysql取出现在的时间戳和时间时间戳转成人类看得懂的时间
    SQL语句:find_in_set的使用方法
    夺命雷公狗---DEDECMS----17dedecms头条信息的取出
    夺命雷公狗---DEDECMS----16dedecms取出首页今日更新
    夺命雷公狗---DEDECMS----15dedecms首页栏目列表页导航部分完成
    夺命雷公狗---DEDECMS----14dedecms首页导航条的完成
  • 原文地址:https://www.cnblogs.com/gzhjj/p/11769366.html
Copyright © 2011-2022 走看看