收集表单数据

简介: 收集表单数据


<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>收集表单数据</title>
    <script type="text/javascript" src="../js/vue.js"></script>
  </head>
  <body>
    <div id="root">
      <form @submit.prevent="demo">
        账号:<input type="text" v-model.trim="userInfo.account"> <br/><br/>
        密码:<input type="password" v-model="userInfo.password"> <br/><br/>
        年龄:<input type="number" v-model.number="userInfo.age"> <br/><br/>
        性别:
        男<input type="radio" name="sex" v-model="userInfo.sex" value="male">
        女<input type="radio" name="sex" v-model="userInfo.sex" value="female"> <br/><br/>
        爱好:
        学习<input type="checkbox" v-model="userInfo.hobby" value="study">
        打游戏<input type="checkbox" v-model="userInfo.hobby" value="game">
        吃饭<input type="checkbox" v-model="userInfo.hobby" value="eat">
        <br/><br/>
        所属校区:
        <select v-model="userInfo.city">
          <option value="">请选择校区</option>
          <option value="beijing">北京</option>
          <option value="shanghai">上海</option>
          <option value="shenzhen">深圳</option>
          <option value="wuhan">武汉</option>
        </select>
        <br/><br/>
        其他信息:
        <textarea v-model.lazy="userInfo.other"></textarea> <br/><br/>
        <input type="checkbox" v-model="userInfo.agree">阅读并接受<a href="http://www.atguigu.com">《用户协议》</a>
        <button>提交</button>
      </form>
    </div>
  </body>
  <script type="text/javascript">
    Vue.config.productionTip = false
    new Vue({
      el:'#root',
      data:{
        userInfo:{
          account:'',
          password:'',
          age:0,
          sex:'female',
          hobby:[],
          city:'beijing',
          other:'',
          agree:''
        }
      },
      methods: {
        demo(){
          console.log(JSON.stringify(this.userInfo))
        }
      }
    })
  </script>
</html>

效果:


总结:


收集表单数据:


若:<input type="text"/>,则v-model收集的是value值,用户输入的内容就是value值

若:<input type="radio"/>,则v-model收集的是value值,且要给标签配置value属性

若:<input type="checkbox"/>

没有配置value属性,那么收集的是checked属性(勾选 or 未勾选,是布尔值)

配置了value属性:

v-model的初始值是非数组,那么收集的就是checked(勾选 or 未勾选,是布尔值)

v-model的初始值是数组,那么收集的就是value组成的数组

v-model的三个修饰符:


lazy:失去焦点后再收集数据

number:输入字符串转为有效的数字

trim:输入首尾空格过滤

相关文章
|
5月前
|
人工智能 中间件 程序员
LLM 不断提升智能下限,MCP 不断提升创意上限
LLM 是大脑,MCP 是手脚。LLM 不断提升智能下限,MCP 不断提升创意上限。所有的应用和软件都会被 AI 改造,将向所有的应用和软件都会被 MCP 改造的新范式演进。
285 25
|
7月前
|
存储 SQL 关系型数据库
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log、原理、写入过程;binlog与redolog区别、update语句的执行流程、两阶段提交、主从复制、三种日志的使用场景;查询日志、慢查询日志、错误日志等其他几类日志
590 35
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log
|
6月前
|
人工智能 前端开发 程序员
通义灵码2.0 AI 程序员体验
通义灵码AI程序员全面上线,作为国内首个真正落地的AI程序员,支持Qwen2.5-Max等模型并适配VS Code与JetBrains IDEs。它在新功能开发中快速生成代码框架,助力跨语言编程、自动生成单元测试,还能智能分析错误信息提供修复建议。体验活动显示,通义灵码2.0在代码生成、单元测试和跨语言编程上效率显著提升,极大优化开发者工作流程,成为不可或缺的智能助手。
198 3
|
11月前
|
数据采集 数据可视化 数据挖掘
使用Python进行数据处理与可视化——以气温数据分析为例
【10月更文挑战第12天】使用Python进行数据处理与可视化——以气温数据分析为例
851 0
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的水果商城附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的水果商城附带文章和源代码部署视频讲解等
315 10
|
存储 运维 安全
云擎技术:通信网络单元定级备案指南
简介: 通信网络单元定级备案是指相关基础电信企业、增值电信企业要对本单位管理、运行的公用通信网和互联网及其各类信息系统进行单元划分,按照《通信网络安全防护管理办法》(工业和信息化部令第11号)的规定开展定级工作,并在工业和信息化部“通信网络安全防护管理系统”报送各单元的定级信息。
399 2
|
Java
【异常解决】Java运行时发生 java.lang.NoClassDefFoundError: Could not initialize class com.iot.alarm.ProcAlar
【异常解决】Java运行时发生 java.lang.NoClassDefFoundError: Could not initialize class com.iot.alarm.ProcAlar
1434 0
|
消息中间件 关系型数据库 MySQL
[flink 实时流基础] 输出算子(Sink)
[flink 实时流基础] 输出算子(Sink)
720 1
|
存储 消息中间件 Java
Java多线程实战-异步操作日志记录解决方案(AOP+注解+多线程)
Java多线程实战-异步操作日志记录解决方案(AOP+注解+多线程)
|
设计模式 前端开发 PHP
【PHP开发专栏】Laravel框架快速上手
【4月更文挑战第30天】本文介绍了Laravel,一个流行的PHP Web框架,以其优雅语法和简洁设计受开发者喜爱。内容分为三部分:1) 环境准备与项目创建,包括安装Composer和使用Laravel安装器创建新项目;2) 基本概念和核心组件,涉及路由、控制器、模型和视图的使用;3) 进阶功能与实战应用,如用户认证、表单验证和邮件发送。通过学习,读者可快速上手Laravel,进行高效Web应用开发。
168 0