目录

一、表单验证

二、增删改


一、表单验证

步骤:

①、将以下拷入Articles.vue中分页条下面

    <!-- 编辑界面 --><el-dialog :title="title" :visible.sync="editFormVisible" width="30%" @before-close="closeDialog"><el-form label-width="120px" :model="editForm" :rules="rules" ref="editForm"><el-form-item label="文章标题" prop="title"><el-input size="small" v-model="editForm.title" auto-complete="off" placeholder="请输入文章标题"></el-input></el-form-item><el-form-item label="文章内容" prop="body"><el-input size="small" v-model="editForm.body" auto-complete="off" placeholder="请输入文章内容"></el-input></el-form-item></el-form><div slot="footer" class="dialog-footer"><el-button size="small" @click="closeDialog">取消</el-button><el-button size="small" type="primary" class="title" @click="submitForm('editForm')">保存</el-button></div></el-dialog>

拷入后会报错,将title和editFormVisible、editForm赋值

 title: '',editFormVisible: false,editForm: {title: '',body: '',id: 0},

然后先加入一个方法closeDialog

closeDialog() {// 关闭窗体}

②、 写一个方法 handleEdit

handleEdit(index, row) {// 展示新增文章的表单窗体this.editFormVisible = true;}

效果:

③、将以下代码拷入

rules: {title: [{required: true,message: '请输入请输入文章标题',trigger: 'blur'},{min: 5,max: 10,message: '长度在 5 到 10 个字符',trigger: 'blur'}],body: [{required: true,message: '请输入文章内容',trigger: 'blur'}],}

④、将以下代码拷入

submitForm(formName) {this.$refs[formName].validate((valid) => {if (valid) {alert('submit!');} else {console.log('error submit!!');return false;}});},

效果:

步骤总结:

1、拷入表单组件 el-from

2、通过点击 新增/编辑将表单对应窗口弹出

3、给表单设置规则 rules

4、当表单提交事件要校验规则

二、增删改

写个方法:clearData

clearData() {// 清除编辑窗体的缓存数据this.editForm.title = '';this.editForm.id = 0;this.editForm.body = '';this.title = '';this.editFormVisible = false;}

在关闭窗体方法中加入以下代码

this.clearData();

handleEdit方法中加入以下代码

this.clearData();// 展示新增文章的表单窗体this.editFormVisible = true;if (row) {// 编辑this.title = '编辑窗体';this.editForm.id = row.id;this.editForm.title = row.title;this.editForm.body = row.body;} else {// 新增this.title = '新增窗体';}

写入以下代码

clearData() {// 清除编辑窗体的缓存数据this.editForm.title = '';this.editForm.id = 0;this.editForm.body = '';this.title = '';this.editFormVisible = false;}

关闭窗体方法和handleEdit中调用以上该方法

this.clearData();

对submitForm方法进行优化

      submitForm(formName) {this.$refs[formName].validate((valid) => {if (valid) {let url;if (this.editForm.id == 0) {// 新增url = this.axios.urls.SYSTEM_ARTICLE_ADD;} else {url = this.axios.urls.SYSTEM_ARTICLE_EDIT;}this.axios.post(url, this.editForm).then(r => {// 新增成功 1.关闭窗体-清空数据 2.重新查询this.$message({message: r.data.msg,type: 'success'});this.clearData();this.search();}).catch(e => {});} else {console.log('error submit!!');return false;}});}

然后更改doSearch中的以下代码,改成第二个代码

this.formInline = resp.data.pageBean;
this.formInline.total = resp.data.pageBean.total;

最后写个删除方法

deleteUser(index, row) {this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {confirmButtonText: '确定',cancelButtonText: '取消',type: 'warning'}).then(() => {let url = this.axios.urls.SYSTEM_ARTICLE_DEL;this.axios.post(url, {id:row.id}).then(r => {// 新增成功 1.关闭窗体-清空数据 2.重新查询this.$message({message: r.data.msg,type: 'success'});this.clearData();this.search();}).catch(e => {});}).catch(() => {this.$message({type: 'info',message: '已取消删除'});});}

整个页面代码

<template><div><!-- 搜索筛选--><el-form :inline="true" :model="formInline" class="user-search"><el-form-item label="搜索:"><el-input size="small" v-model="formInline.title" placeholder="输入文章标题"></el-input></el-form-item><el-form-item><el-button size="small" type="primary" icon="el-icon-search" @click="search">搜索</el-button><el-button size="small" type="primary" icon="el-icon-plus" @click="handleEdit()">添加</el-button></el-form-item></el-form><!--列表--><el-table size="small" :data="listData" highlight-current-row style="width: 100%;"><el-table-column align="center" type="selection" width="60"></el-table-column><el-table-column sortable prop="id" label="文章ID" width="300"></el-table-column><el-table-column sortable prop="title" label="文章标题" width="300"></el-table-column><el-table-column sortable prop="body" label="文章内容" width="300"></el-table-column><el-table-column align="center" label="操作" min-width="300"><template slot-scope="scope"><el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button><el-button size="mini" type="danger" @click="deleteUser(scope.$index, scope.row)">删除</el-button></template></el-table-column></el-table><!-- 分页条 --><el-pagination style="margin-top: 20px;" @size-change="handleSizeChange" @current-change="handleCurrentChange":current-page="formInline.page" :page-sizes="[10, 20, 30, 50]" :page-size="100"layout="total, sizes, prev, pager, next, jumper" :total="formInline.total"></el-pagination><!-- 编辑界面 --><el-dialog :title="title" :visible.sync="editFormVisible" width="30%" @before-close="closeDialog"><el-form label-width="120px" :model="editForm" :rules="rules" ref="editForm"><el-form-item label="文章标题" prop="title"><el-input size="small" v-model="editForm.title" auto-complete="off" placeholder="请输入文章标题"></el-input></el-form-item><el-form-item label="文章内容" prop="body"><el-input size="small" v-model="editForm.body" auto-complete="off" placeholder="请输入文章内容"></el-input></el-form-item></el-form><div slot="footer" class="dialog-footer"><el-button size="small" @click="closeDialog">取消</el-button><el-button size="small" type="primary" class="title" @click="submitForm('editForm')">保存</el-button></div></el-dialog></div>
</template><script>export default {name: 'Articles',data() {return {title: '',editFormVisible: false,editForm: {title: '',body: '',id: 0},rules: {title: [{required: true,message: '请输入请输入文章标题',trigger: 'blur'},{min: 5,max: 10,message: '长度在 5 到 10 个字符',trigger: 'blur'}],body: [{required: true,message: '请输入文章内容',trigger: 'blur'}],},listData: [],formInline: {page: 1,total: 10,title: ''}}},methods: {handleSizeChange(rows) {this.formInline.page = 1;this.formInline.rows = rows;this.search();},handleCurrentChange(page) {this.formInline.page = page;this.search();},// 为了代码复用doSearch(parm) {// 获取树形节点的数据let url = this.axios.urls.SYSTEM_ARTICLE_LIST;// alert(url);// {uname:'zs',pwd:'123'}this.axios.post(url, parm).then((resp) => {console.log(resp);this.listData = resp.data.result;this.formInline.total = resp.data.pageBean.total;}).catch(function() {});},search() {// 按照条件查询this.doSearch(this.formInline);},closeDialog() {// 关闭窗体this.clearData();},clearData() {// 清除编辑窗体的缓存数据this.editForm.title = '';this.editForm.id = 0;this.editForm.body = '';this.title = '';this.editFormVisible = false;},handleEdit(index, row) {this.clearData();// 展示新增文章的表单窗体this.editFormVisible = true;if (row) {// 编辑this.title = '编辑窗体';this.editForm.id = row.id;this.editForm.title = row.title;this.editForm.body = row.body;} else {// 新增this.title = '新增窗体';}},deleteUser(index, row) {this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {confirmButtonText: '确定',cancelButtonText: '取消',type: 'warning'}).then(() => {let url = this.axios.urls.SYSTEM_ARTICLE_DEL;this.axios.post(url, {id:row.id}).then(r => {// 新增成功 1.关闭窗体-清空数据 2.重新查询this.$message({message: r.data.msg,type: 'success'});this.clearData();this.search();}).catch(e => {});}).catch(() => {this.$message({type: 'info',message: '已取消删除'});});},submitForm(formName) {this.$refs[formName].validate((valid) => {if (valid) {let url;if (this.editForm.id == 0) {// 新增url = this.axios.urls.SYSTEM_ARTICLE_ADD;} else {url = this.axios.urls.SYSTEM_ARTICLE_EDIT;}this.axios.post(url, this.editForm).then(r => {// 新增成功 1.关闭窗体-清空数据 2.重新查询this.$message({message: r.data.msg,type: 'success'});this.clearData();this.search();}).catch(e => {});} else {console.log('error submit!!');return false;}});}},created() {this.doSearch({});}}
</script><style>
</style>

效果:

SPA项目开发(CRUD表单验证)相关推荐

  1. SPA项目开发之CRUD+表单验证

    目录 一.SPA项目开发之表单验证 二.SPA项目开发之CRUD 一.SPA项目开发之表单验证          我们做项目的都关乎到增删改查的功能,在进行增删改查功能之前,我们必须有一个表单验证. ...

  2. 微信小程序开发之表单验证(WxValidate使用)

    微信小程序的开发框架个人感觉大体上跟VUE是差不多的,但是他的表单组件没有自带的验证功能,因此开发小程序的表单验证时候一般有两种方法,一是自己裸写验证规则,但是需要比较扎实的正则表达式基础,一种是利用 ...

  3. JavaWeb前端开发注册表单验证

    注册表单验证 最近在尝试学习开发一个网站,现将登录页面的表单验证总结如下 表单校验分析 1.用户名:单词字符,8到20位 2.密码:单词字符,8到20位 3.email:邮箱格式 4.姓名:汉字非空 ...

  4. vue 项目实践 -ele 表单验证

    关键代码 this.$refs[name].validate((valid)=>{if(valid){// 表单验证通过,可......}} ); 说明 this.refs.refDiv 访问到 ...

  5. vue项目中iview表单验证 this.$refs[name].validate(valid = { }无效

    验证成功的时候没有添加 callback(); 加上该方法就可以了 转载于:https://www.cnblogs.com/qiandong1933/p/qiandong19333.html

  6. jQuery学习之:Validation表单验证插件

    http://polaris.blog.51cto.com/1146394/258781/ 最近由于公司决定使用AJAX + Struts2来重构项目,让我仔细研究一下这两个,然后集中给同事讲讲,让每 ...

  7. bootstrap3 第2课:表单验证

    做Web开发,表单验证是再常见不过的需求了,友好的错误提示能增加用户体验.比如我们在提交之前,首先要验证有哪些数据是必填项,哪些数据的格式需要验证. 如果我们的网页使用的bootstrap3框架搭建的 ...

  8. 视频教程-Web前端开发利器 SPRY框架之表单验证-JavaScript

    Web前端开发利器 SPRY框架之表单验证 有17年互联网行业从业经验,始终在教学第一线,勇于创新,从有效教学,不断向高效教学转变.始终坚持"学生为主体,教师为主导:商业化案例,企业化情境& ...

  9. Mendix敏捷开发零基础学习《二》-进阶(Microflow微流、表单验证、运算符、条件判断、数据嵌套、触发器、Debug问题跟踪、版本管理)

    目录结构 Mendix敏捷开发零基础学习<二> 一.Microflow微流 1.引言 2.常见的功能 3.微流可以做那些事情? 3.1 举例1(用微流打开新增页面) 3.2 举例2(用微流 ...

最新文章

  1. NioEventLoop加载流程分析
  2. 安装jdk步骤rpm_jenkins rpm包方式安装
  3. python 登陆微博 被删除 token_爬取微博信息,使用了cookie仍然无法登录微博
  4. android136 360 拖拽
  5. 杭电4508湫湫系列故事——减肥记I
  6. centos7时间同步_基于 Canal 和 Kafka 实现 MySQL 的 Binlog 近实时同步
  7. java雪花纷飞_终于理解白雪比喻句
  8. javascript服务端编程
  9. 计算机恢复数据怎么恢复,电脑数据恢复,详细教您电脑数据如何恢复
  10. 【老生谈算法】matlabBOOST电路的设计与仿真——BOOST电路
  11. centos安装中文字体
  12. 名编辑电子杂志大师教程 | 如何删除电子画册中不要的页面?
  13. meta-inf文件夹以及MANIFEST.MF文件的作用
  14. java 外部输入数据 语句_在编写Java应用程序时,如需从键盘输入各种类型的多个数据,则必须在程序的开头写上( )语句。...
  15. python金融量化分析 | 闲杂笔记
  16. 近七成美国汽车消费者下一辆仍想买燃油车,中韩最热衷纯电车,日本最偏好混动车 | 美通社头条...
  17. RSA公私钥生成、加解密、签名及验签的原理及工具类
  18. 工程优化设计与matlab实现 课后答案,清华大学出版社-图书详情-《工程优化设计与MATLAB实现(修订版)》...
  19. faulting module msctfime.ime 纠结的微软拼音输入法
  20. Web前端静态页面示例

热门文章

  1. php户型图识别,5分钟教你马上看懂户型图
  2. Java简单类、变量详解(概念和分类、声明、命名、初始化)
  3. Element组件框架
  4. macOS 13 如何更新?macOS Ventura抢先更新
  5. 更换cpu后 unraid 无法启动web,提示PTE Read access is not set
  6. 3D建模角色男人头雕刻 | 不要再花钱买教程啦
  7. CRM管理系统查询客户信息
  8. Introduction to NMOS and PMOS Transistors
  9. PCB板元器件视觉检测系统解决方案
  10. DustBot机器人