vue获取input值的三种常用写法

 更新时间:2022年08月10日 09:55:24   作者:June.1  
这篇文章主要介绍了vue获取input值的三种常用写法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

1. v-model 表单输入绑定

使用v-model创建双向数据绑定, 用来监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理。

    <template>
        <div>
            <input class="login-input" type="text"  v-model="username" placeholder="请输入账号">
            <input class="login-input" type="password" v-model="password" placeholder="请输入密码">
            <div class="login-button" @click="login" type="submit">登陆</div>
        </div>
    </template>
    <script>
    export default {
       name: 'Login',
        data() {
            return {
                username: '',
                password: ''
            }
        },
        methods: {
            login() {
                   console.log(this.username)
                   console.log(this.password)
            }
        }
    }
    <script/>

    

2. @input 监听输入框

输入框只要输入的值变化了就会触发 input 调用 search 数据实时获取通过 event.currentTarget.value 获取到

    <template>
      <div class="class">
        <div>
          <input type="text" @keyup.enter="search" @input="search($event)"/>
        </div>
      </div>
    </template>
    <script>
    export default {
      name: "search",
      data() {
      },
      methods: {
            search(event){
              console.log(event.currentTarget.value)
            }
          }
    }
   </script>

3. ref 获取数据

这种方式类似于原生DOM,但是ref获取数据更方便

    <template>
      <div class="class">
          <input type="text" ref="getValue" />
          <button @click="subbmitButton">获取表单数据</button>
      </div>
    </template>
    <script>
    export default {
      name: "page",
      data() {
      },
      methods: {
            subbmitButton(){
              console.log(this.$refs.getValue.value)
            }
          }
    }
  </script>

vue收集input[type=“checkbox”]的值

input[type=“checkbox”],勾选or不勾选

要控制input[type=“checkbox”]勾选或不勾选,有以下两种方式,

  • v-model="isDone"。isDone为true时,勾选;isDone为false时,不勾选
  • :checked="isDone"。isDone为true时,勾选,isDone为false时,不勾选

注意哈!!此时isDone必须初始化为布尔值(或者可布尔化的类型,如字符串,数值,非0即1)

v-model

<body>
    <div id="root">
        <input type="checkbox" v-model="isDone"/>已经完成
        <button @click="handleClick">勾选/去勾选</button>
    </div>

    <script>
    Vue.config.productionTip = false;
    new Vue({
        el:"#root",
        data(){
            return {
                isDone:false
            }
        },
        methods: {
            handleClick(){
                this.isDone = !this.isDone;
            }
        },
        watch:{
            isDone:{
                immediate:true,
                handler(newValue,oldValue){
                    console.log(newValue,oldValue);
                }
            }
        }
    })
    </script>
</body>

:checked

<body>
    <div id="root">
        <input type="checkbox" :checked="isDone"/>已经完成
        <button @click="handleClick">勾选/去勾选</button>
    </div>

    <script>
    Vue.config.productionTip = false;
    new Vue({
        el:"#root",
        data(){
            return {
                isDone:false
            }
        },
        methods: {
            handleClick(){
                this.isDone = !this.isDone;
            }
        },
        watch:{
            isDone:{
                immediate:true,
                handler(newValue,oldValue){
                    console.log(newValue,oldValue);
                }
            }
        }
    })
    </script>
</body>

input[type=“checkbox”]多个时,哪些被选中

多个input[type="checkbox"]时,想知道哪些被选中,使用v-model,如v-model="hobbies"。

注意哈!!此时hobbies必须初始化为数组。

<body>
    <div id="root">
        <label><input type="checkbox" name="hobby" value="football" v-model="hobbies"/>足球</label><br/>
        <label><input type="checkbox" name="hobby" value="basketball" v-model="hobbies"/>篮球</label><br/>
        <label><input type="checkbox" name="hobby" value="tennis" v-model="hobbies"/>网球</label>
    </div>

    <script>
    Vue.config.productionTip = false;
    new Vue({
        el:"#root",
        data(){
            return {
                hobbies:[]
            }
        },
        watch:{
            hobbies:{
                immediate:true,
                handler(newValue){
                    console.log(newValue);
                }
            }
        }
    })
    </script>
</body>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 基于Vue3实现印章徽章组件的示例代码

    基于Vue3实现印章徽章组件的示例代码

    这篇文章主要介绍了如何利用vue3实现简单的印章徽章控件,文中通过示例代码讲解详细,需要的朋友们下面就跟随小编来一起学习学习吧
    2023-04-04
  • vue中el-date-picker限制选择7天内&禁止内框选择

    vue中el-date-picker限制选择7天内&禁止内框选择

    项目中需要选择时间范围,并且只能选择当前日期之后的七天,本文就来介绍了vue中el-date-picker限制选择7天内&禁止内框选择,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • Vue3  defineExpose要在方法声明定义以后使用的教程

    Vue3  defineExpose要在方法声明定义以后使用的教程

    这篇文章主要介绍了Vue3  defineExpose要在方法声明定义以后使用的教程,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-02-02
  • Vue项目配置router.js流程分析讲解

    Vue项目配置router.js流程分析讲解

    第一次写Vue项目,要用到router.js,看了一下官方文档,还是很懵逼,不知道怎么配置,又去看视频查资料,最后终于搞定了。话不多说,先上代码,我再讲一些要注意的细节
    2022-12-12
  • 详解webpack打包vue项目之后生成的dist文件该怎么启动运行

    详解webpack打包vue项目之后生成的dist文件该怎么启动运行

    这篇文章主要介绍了详解webpack打包vue项目之后生成的dist文件该怎么启动运行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • vue等待数据渲染完成后执行下一个方法问题

    vue等待数据渲染完成后执行下一个方法问题

    这篇文章主要介绍了vue等待数据渲染完成后执行下一个方法问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Vue和uniapp中该如何使用canvas详解

    Vue和uniapp中该如何使用canvas详解

    说起canvas是css3新增的标签,而饼状图又是canvas经典,我们公司现在正在用uni-app框架去研发APP,下面这篇文章主要给大家介绍了关于Vue和uniapp中该如何使用canvas的相关资料,需要的朋友可以参考下
    2022-10-10
  • 详解从新建vue项目到引入组件Element的方法

    详解从新建vue项目到引入组件Element的方法

    本篇文章主要介绍了详解从新建vue项目到引入组件Element的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • vue中子组件传递数据给父组件的讲解

    vue中子组件传递数据给父组件的讲解

    今天小编就为大家分享一篇关于vue中子组件传递数据给父组件的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • vue2.0如何实现echarts饼图(pie)效果展示

    vue2.0如何实现echarts饼图(pie)效果展示

    这篇文章主要介绍了vue2.0如何实现echarts饼图(pie)效果展示,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10

最新评论