vue组件表单数据回显验证及提交代码

【上传图片】Vue上传图片并回显 上传图片后显示到页面 阅读详情

最近项目需要到vue开发单页面,所以就研究一下表单数据的回显,验证及提交如何用vue组件的方式实现。

这里写图片描述

代码如下:

<template>
    <div class="index">
        <!--header-bar></header-bar-->
        <div style="margin:20px;">
            <div class="item">
                <p>住户名称:</p>
                <p>
                    <input type="text" value="username" v-model="formStatus.username" placeholder="输入名称">
                </p>
            </div>
            <div class="item">
                <p>住户类型:</p>
                <p>
                    <label v-for="(item, index) in zhuhuType">
                        <span>{{item.name}}</span>
                        <input type="radio" name = "zhuhutype" :value="item.id" :checked="item.isChecked" @click="changeZh(index)" v-model="formStatus.zhuhuType">
                    </label>
                </p>
            </div>
            <div class="item">
                <p>设备名称:</p>
                <p>
                    <label v-for="(item, index) in shebeiType">
                        <span>{{item.name}}</span>
                        <input type="checkbox" :value="item.id" :checked="item.isChecked" @click="changeSb(index)" v-model="formStatus.shebeiType">
                    </label>
                </p>
            </div>
            <div class="item">
                <p>住户大小:</p>
                <p>
                    <select v-model="formStatus.zhuhudaxiao">
                        <option value="0">请选择</option>
                        <option v-for="option in zhuhudaxiao" v-model="zhuhudaxiao" :id = "option.id" :value="option.value" >{{option.name}}</option>
                    </select>
                </p>
            </div>
            <div class="item">
                <p>住户留言:</p>
                <p>
                    <textarea value="userword" v-model="formStatus.userword"></textarea>
                </p>
            </div>
        
        </div>
        <p style="margin:20px 0;"><button @click="save">点击保存</button></p>
    </div>
</template>
<script>
    import Vue from 'vue'
    import axios from 'axios';
    import ElementUI from 'element-ui'
    import URL from '../utils/Tools/URL.js'
    import 'element-ui/lib/theme-chalk/index.css'
    Vue.use(ElementUI)
    import headerBar from '../modules/headerBar.vue';
    export default {
        name: 'index',
        data (){
            return {
                zhuhuType: [],
                shebeiType: [],
                zhuhudaxiao: [],
                //绑定改变后的表单值用于提交
                formStatus: {
                    username: "",
                    zhuhuType: 43,
                    shebeiType: [52, 23],
                    zhuhudaxiao: "",
                    userword: ""
                }
            }
        },
        components: { headerBar },
        methods: {
            getPage (currentPage){
                console.log(currentPage);
                // this.$http.get("http://192.168.1.200/test.php").then(res=>{
                //     console.log(res.data);
                // });
            },
            handleEdit(index, row) {
                console.log(index, row);
            },
            handleDelete(index, row) {
                console.log(index, row);
            },
            save(){
                if(this.formStatus.username == ""){
                    alert("输入名称");
                    return false;
                }
                console.log(typeof(this.formStatus.zhuhuType));
                if(typeof(parseInt(this.formStatus.zhuhuType)) != "number"){
                    alert("输入住户类型");
                    return false;
                }
                if(this.formStatus.shebeiType.length == 0 ){
                    alert("输入设备名称");
                    return false;
                }
                if(this.formStatus.zhuhudaxiao == 0){
                    alert("选择住户大小");
                    return false;
                }
                if(this.formStatus.userword == ""){
                    alert("输入用户留言");
                    return false;
                }

                console.log(this.formStatus);
                console.log("####用户名称####");
                console.log(this.formStatus.username);

                console.log("####住户类型####");
                console.log(this.zhuhuType);

                console.log("####设备名称####");
                console.log(this.shebeiType);

                console.log("####住户大小####");
                console.log(this.userDxselected);

                console.log("####用户留言####");
                console.log(this.userword);
            },
            //住户类型改变数据
            changeZh(index){
                this.zhuhuType.forEach(function(value, index){
                    value.isChecked = false;
                });
                this.zhuhuType[index].isChecked = true;
            },
            //设备选择改变数据
            changeSb(index){
                console.log(index);
                this.shebeiType[index].isChecked = !this.shebeiType[index].isChecked;
            }
        },
        created () {
            console.log("############");
            //用户名称
            this.formStatus.username = "用户名称返回的内容";

            //循环住户类型
            this.zhuhuType = [{
                name: '小型住户',
                id: '12',
                isChecked: false
            },{
                name: '中型住户',
                id: '43',
                isChecked: false
            },{
                name: '大型住户',
                id: '72',
                isChecked: true
            },{
                name: '超大型住户',
                name: '设备6',
                id: '25',
                isChecked: false
            }];

            //循环设备名称
            this.shebeiType = [{
                name: '设备1',
                id: '22',
                isChecked: true
            },{
                name: '设备2',
                id: '23',
                isChecked: false
            },{
                name: '设备3',
                id: '52',
                isChecked: true
            },{
                name: '设备6',
                id: '65',
                isChecked: false
            }];
            
            //住户大小
            this.zhuhudaxiao = [{
                name: "100平米",
                id: 1,
                value: 1
            },{
                name: "80平米",
                id: 2,
                value: 2
            },{
                name: "70平米",
                id: 3,
                value: 3
            }];

            //住户大小
            this.formStatus.zhuhudaxiao = 2;
            //用户名称
            this.formStatus.userword = "用户留言返回的内容";
            // axios.get("/test.php").then(res=>{
            //     this.table = this.table.concat(res.data.data);
               
            //     console.log(res.data);
            // });
        }
    }
</script>
<style>
    select{height:40px;width:100px;}
    .el-button--mini, .el-button--mini.is-round{}
    *{margin:0;padding:0;font-family:"微软雅黑";}
    button{height:40px;width:100px;margin-left:20px;}
    .item p{padding:10px 0;}
    .table, .page{
        width:900px;
        height:auto;
        margin:20px auto;
    }
    label{
        padding:10px 20px;
        margin:10px;
        border:1px solid #eee;
    }
    body{padding-top:80px;}
    .header{
        position:fixed;
        top:0;
        width:100%;
        background:#eee;
    }
    .header ul{
        height:80px;
        width:1000px;
    }
    .header ul li{
        float:left;
        width:200px;
        font-size:14px;
        line-height:80px;
        text-align:Center;
    }
    .header ul li a{
        display:block;
    }

</style>
Vue_10_Spa_项目4次-CRUD+表单验证 一、表单验证 在分页条下面放入编辑组件el-dialog: <!-- 编辑界面--> <el-dialog :title="title" :visible.sync="editFormVisible" width="30%" @click="closeDialog"> <el-form label-width="120px" :model="editForm" :rules="rules" ref="editForm"> &lt 阅读详情

相关推荐

vue 封装Form表单组件

- 前景 在项目中很常见的交互:回显表单信息 + 验证表单 + 提交表单信息,而表单的类型也有很多(复选框,单选框,下拉框,输入框,文本框等等等)如果多个页面都有表单验证的交互且表单的内容不一样,难道我们就要去写多个表单组件吗???那该怎么办呢???? - 作用 根据element-ui 的Form表单组件,写了一个公共的组件,可以满足大多数的表单类型的验证,做的这个组件主要是以弹窗的形式在页面上展示 主要的功能: -显示弹窗(根据传入的数据来决定来显示表单) -验证表单信息 -提交表单信息 - 具体代码

qq_37976966的博客 7470

vue点击修改数据回显的方式

vue点击修改数据回显的方式

m0_47195133的博客 1万+

vue封装的通用五级地址联动选择器组件 [拿来即用]

复制粘贴即可,拿来即用

全易 5466

vue的数据回显

123

qq_45904712的博客 721

Vue案例总结之--数据操作双向回显,双向交互,批量操作,复选框数据操作,实时分数计算等

【代码】Vue案例总结之--数据操作双向回显,双向交互,批量操作,复选框数据操作,实时分数计算等。

weixin_41346436的博客 667

avue-form-design:本项目是一款基于 Avue 的表单设计器,拖拽式操作让你快速构建一个表单

简介 本项目是一款基于 的表单设计器,拖拽式操作让你快速构建一个表单。 :party_popper: 基于Bladex的工作流插件已上市。 更新日志 文档及demo项目 依赖 element-ui 2.13.2+ $ npm i element-ui @smallwei/avue 2.6.16+ $ npm i @smallwei/avue 或自行引入cdn 安装 组件 $ npm i @sscfaith/avue-form-design 或 $ yarn add @sscfaith/avue-form-design 源码 or $ yarn $ yarn serve html 详见examples 使用 import AvueFormDesign from '@sscfaith/avue-form-design' Vue.use(AvueFormDesign) <avue-form-design style=

vue页面回显数据_vue组件表单数据回显验证及提交的实例代码

最近项目需要到vue开发单页面,所以就研究一下表单数据的回显,验证及提交如何用vue组件的方式实现。代码如下:住户名称:住户类型:{{item.name}}设备名称:{{item.name}}住户大小:请选择{{option.name}}住户留言:点击保存import vue from 'vue'import axios from 'axios';import elementui from 'el...

weixin_29317963的博客 3073

深入解析Lora SX1268:从基础配置到高级应用

本文深入解析了LoRa SX1268芯片从基础配置到高级应用的全过程。详细介绍了LoRa与FSK模式选择、核心参数(BW、SF、CR、LDRO)的配置策略、数据帧结构、缓冲区管理以及CAD模式等关键概念,旨在帮助开发者充分发挥SX1268在远距离、低功耗物联网通信中的潜力,并提供实用的调试技巧。

weixin_29168393的博客 119

vue页面回显数据_vue组件表单数据回显验证及提交代码(代码实现)

最近项目需要到vue开发单页面,所以就研究一下表单数据的回显,验证及提交如何用vue组件的方式实现。代码如下:住户名称:住户类型:{{item.name}}设备名称:{{item.name}}住户大小:请选择{{option.name}}住户留言:点击保存import Vue from 'vue'import axios from 'axios';import ElementUI from 'el...

weixin_39693101的博客 1282

别只盯着Spectre!Cadence Virtuoso里APS和Spectre X该怎么选?一份给模拟IC新手的指南

本文深入解析Cadence Virtuoso中的三大仿真引擎Spectre、APS和Spectre X,帮助模拟IC新手根据电路规模、精度需求和计算资源做出智能选择。通过对比技术指标和应用场景,提供射频电路、混合信号系统和电源管理IC的优化仿真策略,显著提升设计效率。

weixin_26841743的博客 710

电子工程师必看:dB与放大倍数快速换算表(附常见误区解析)

本文为电子工程师提供了dB与放大倍数快速换算的实战指南。文章深度解析了分贝的本质与核心价值,并提供了电压/电流与功率增益的速查表及心算技巧。重点剖析了混淆电压与功率dB、-3dB带宽理解等常见误区,并结合示波器、频谱仪测量及系统级应用,帮助工程师在实际工作中高效、准确地运用这一对数工具。

weixin_29214199的博客 655

关于Vue的项目中的一些常用操作

关于Vue的项目中的一些常用操作 Form表单 <!--绑定js中声明的dataForm --> <el-form :model="dataForm" :data="importList" @keyup.enter.native="getDataList()"> data里面绑定 element里面的使用prop映射,不然网页端不会显示的 关于提交的话,需要在method里面进行操作的哈 methods:{ submit:function(){ vm.$

HENG_YUAN的博客 384

手把手教你用Origin拟合真应力-真应变曲线:从数据到加工硬化指数n的完整流程

本文详细解析了如何使用Origin软件拟合真应力-真应变曲线并计算加工硬化指数n的全流程。从数据预处理、曲线绘制到Hollomon方程拟合,逐步指导材料科学研究人员完成实验数据分析,帮助准确评估金属材料的力学性能与强化特性。

view3的博客 720

Java:59-前后端项目接口联调

template>-- v-model的值,为当前框的值 label选项的标签名-->-- Object.keys(statusMapping)获取键值对的key数组其中value必须在,否则不会显示,而我们绑定的v-model的值其中找到对应的value的值的对应的那条数据可以是key或者直接的数据若是key则将他的这条数据的其中label的对应值默认的显示出来。

qq_59609098的博客 6237

【SAP HANA 46】关于HANA CPU高峰到 80-100%

关于HANA CPU高峰到 80-100%

探索 Java 编程的技巧、最佳实践和解决方案。本博客提供针对 Java 开发者的实用指南,涵盖从基础到高级话题,旨在提升编程效率和技能。 429

mongodb在游戏开发领域的优势

目前游戏服务器使用mysql作为数据库的较多,然而,使用mongodb来作为存储层,在某些方面比mysql更为方便和适合。

littleschemer的博客 1700

Vue表单数据回显失败技术解析与修复指南!!!

组件类型关键Prop状态管理父组件控制弹窗显示子组件visible接收显示状态数据桥梁formData传递表单数据优先采用v-show:保留组件实例状态严格数据流顺序:先准备数据再触发显示强化Watch监听immediatedeep双保险完整生命周期管理:利用$nextTick避免时序问题黄金法则:在Vue体系中,组件存活状态和数据传递时序是复杂状态管理的两把钥匙!🗝️相关阅读推荐•Vue官方生命周期图示•Element UI Dialog深度解析•Vue响应式原理探秘推荐工具。

小丁的博客 1287

《PCI Express体系结构导读1》-- PCI简介

请先阅读完一遍此书再来看文章哦,这样效率更高~

HoneyIC的博客 152

vue3 form表单新增,表单修改,删除,表单数据回显

vue3封装弹窗组件,数据回显,封装组件的流程,第一理解具体的业务需求。想好数据的交互层级,数据进数据出的具体逻辑。vue的组件封装记住一点不要在子组件修改父组件的数据,需要修改数据emit方法抛出数据父组件修改。。

qq_42704945的博客 8719

【银河麒麟服务器操作系统】安装英伟达4090D显卡驱动操作指南

本文详细介绍了在银河麒麟高级服务器操作系统V10SP3-2403-X86版本上安装NVIDIA RTX4090D显卡驱动的完整流程。主要内容包括:准备工作检查、开源驱动禁用、运行级别切换、依赖包安装以及交互式安装过程中的关键选项选择(32位库选Yes、X配置选No)。通过禁用nouveau驱动、重建内核引导等步骤确保驱动安装成功,最后通过nvidia-smi命令验证驱动安装情况。文档提供了操作检查表和安装流程图,帮助用户在银河麒麟系统上顺利完成显卡驱动部署。

信创运维工程师 · 银河麒麟 & 容器实战 | 金融生产环境迁移·等保加固 | 142篇原创·17万+阅读 3107

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Vue 3 表单与后端数据交互:查询并回显数据

前端:用户输入,点击查询按钮,通过调用后端接口获取数据并填充到表单。 后端:根据传入的查询数据库,返回查询结果。 数据回显:前端接收到查询结果后,将数据填充到表单,供用户查看和编辑

码农研究僧的博客 2943

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【前端5*】表格-表单1(弹窗在父组件)父子组件调用 vue element-ui

在本系列的第一篇文章中,我们将梳理如何在Vue.js中使用Element-UI实现表格与表单的结合:如何在父组件中通过按钮触发弹窗,并在弹窗中调用子组件的表单。 这种设计模式在实际项目中非常常见,特别是在需要对数据进行增删改查操作时,能够有效地提升用户体验和代码可维护性。 本文将分为以下几个部分: 1、环境配置与基础介绍 2、父子组件的结构与数据传递 3、使用Element-UI实现弹窗与表单 4、完整示例代码与详细解析(后面一篇博客)

定期分享我的发现和想法,感谢你的陪伴和支持 3018

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

vue 根据动态生成的form表单的整体的数据回显,赋值及校验和提交

主要负责处理表单数据的展示、编辑和提交,以及与后端接口的交互。(处理选择地址、处理单选框选中、设置表单验证、提交表单、校验文件是否上传完成、处理上传文件等)

weixin_46328739的博客 2589

VUE+Layui 输入框、下拉选择框、复选框、开关、文本域 数据回显

vue+layui表单数据回显

夏已微凉、 2281
上一篇: CSS两侧固定宽度高随父元素变化,中间宽度随窗口宽度变化而变化布局效果
下一篇: vue组件开发之slider组件。
#麻辣小龙虾#
博客等级 码龄11年 1万+粉丝 235原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值