首頁 > web前端 > js教程 > 對Vue中表單輸入綁定和元件基礎的分析

對Vue中表單輸入綁定和元件基礎的分析

不言
發布: 2018-07-17 16:50:28
原創
1140 人瀏覽過

這篇文章要跟大家分享的是關於Vue中表單輸入綁定和元件基礎的分析,有需要的朋友可以參考一下。

目標:

  1. 熟練vue中表單的處理方式

  2. 對先前學習的內容簡單回顧一下,並寫一個實例,學以致用(最好脫離文檔)

vue中表單的處理方式

  1. vue中表單的處理使用了v-model指令, 這個指令可以直接把一個資料綁定到表單元素中的value,checked,selected特性,同時這些特性也會被忽略掉初始值,而總是將vue實例的資料作為資料來源.

  2. 使用了v-model之後<textarea></textarea>之間的插值就不會有效了,會被v-model代替.

雙向綁定(v-model)

1.綁定value: text,textarea(字串)
text:

<input v-model="message" placeholder="edit me">
登入後複製

# textarea:

<textarea v-model="message" placeholder="add multiple lines"></textarea>
登入後複製

2.綁定checked: checkout(單一綁定布林值,多個綁定字串陣列), radio(字串)
checkout(單一):

<input type="checkbox" id="checkbox" v-model="checked">
登入後複製

checkout(多):

<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>
登入後複製

radio:

<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>
登入後複製

3.綁定selected: select(字串)

<select v-model="selected">
    <option disabled value="">请选择</option>
    <option>A</option>
    <option>B</option>
    <option>C</option>
</select>
登入後複製

修飾符(用在v-model指令上)

.lazy: 觸發的事件不一樣,使用change觸發,而不是input觸發
.number: 自動轉為數字類型
.trim:自動過濾後衛空白符號

範例

form.html

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>表单输入绑定</title>
    <script src="https://cdn.bootcss.com/vue/2.5.17-beta.0/vue.min.js"></script>
</head>
<body>
    <p id="app">
        <form>
            <!-- 文本 -->
            <input type="text" v-model="formData.textValue">{{formData.textValue}}<br>
            <textarea v-model="formData.textareaValue"></textarea>{{formData.textareaValue}}<br>
            <!-- checkout(单个) -->
            <input type="checkbox" id="checkbox" v-model="formData.isChecked"><label for="checkbox">点我啊</label><br>
            <!-- 多个多选 -->
            <input type="checkbox" id="haha" value="haha" v-model="formData.checkedValues">
            <label for="haha">哈哈</label>
            <input type="checkbox" id="hoho" value="hoho" v-model="formData.checkedValues">
            <label for="hoho">呵呵</label>
            <input type="checkbox" id="hihi" value="hihi" v-model="formData.checkedValues">
            <label for="hihi">嘻嘻</label>
            <br>
            多选选中的是<span v-for="value of formData.checkedValues"> {{value}} </span>
            <br>
            <!-- 单选 -->
            <input type="radio" id="one" value="one" v-model="formData.pickedValue">
            <label for="one">one</label>
            <input type="radio" id="two" value="two" v-model="formData.pickedValue">
            <label for="two">two</label>
            <input type="radio" id="three" value="three" v-model="formData.pickedValue">
            <label for="three">three</label>
            <br>
            单选选中的是<span> {{formData.pickedValue}} </span>
            <br>
            <!-- 下拉选择框 -->
            <select v-model="formData.selectedValue">
                <option disabled value="">请选择</option>
                <option>A</option>
                <option>B</option>
                <option>C</option>
            </select>
            <br>
            下拉选择框选中的是<span> {{formData.selectedValue}} </span>
            <br>
            <a @click="submitForm">提交</a>
        </form>
    </p>
</p>
<script>
    var vm = new Vue({
        el: &#39;#app&#39;,
        data: {
            formData: {
                textValue: &#39;&#39;,
                textareaValue: &#39;&#39;,
                isChecked: true,
                checkedValues: [],
                pickedValue:&#39;&#39;,
                selectedValue: &#39;&#39;
            },
            msg: &#39;这是一句消息&#39;
        },
        methods: {
            submitForm: function(){
                for(var key in this.formData) {
                    obj[key] = this.formData[key];
                }
                console.log(this.formData);
                console.log(this.msg);
            }
        }
    });
</script>
</body>
</html>
登入後複製

相關推薦:

對Vue中事件處理的分析

Vue中class與style綁定以及條件與清單渲染的分析

#

以上是對Vue中表單輸入綁定和元件基礎的分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板