Vue.js 教程

Vue.js 表单绑定 input

以用 v-model 指令在表单 <input>、<textarea> 及 <select> 元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。尽管有些神奇,但 v-model 本质上不过是语法糖。它负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理。

注意:v-model 会忽略所有表单元素的 value、checked、selected 属性的初始值,而总是将 Vue 实例的数据作为数据来源(进行初始化)。你应该通过 JavaScript 在组件的 data 选项中声明初始值。

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

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

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

  • select 元素使用 value 属性和 change 事件;

注意:对于需要使用输入法 (如中文、日文、韩文等) 的语言,你会发现 v-model 不会在输入法组合文字过程中得到更新。如果你也想处理这个过程,请使用 input 事件。

示例

使用 v-model 将 input 绑定到 message 属性,修改 input 的值,message 属性的值也会同步修改。如下:

<html>
<head>
   <meta charset="UTF-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Vue</title>
   <!-- 使用 CDN 引入 Vue 库 -->
   <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
</head>
<body>

   <div id="app">
       <!-- 建立 input 与数据域 message 之间的双向绑定 -->
       <input v-model="message" placeholder="edit me">
       <!-- 显示数据域 message 的内容到数据 -->
       <p>Message is: {{ message }}</p>
   </div>

   <script type="text/javascript">
       var app = new Vue({
           el: "#app",
           data: {
               // 数据域,用于与 input 建立绑定
               message: "Init Value"
           }
       });
   </script>

</body>
</html>

效果如下图:

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号