`
littcai
  • 浏览: 247966 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

基于规则的表单处理(极简主义)

阅读更多

简介

    作为一个懒人,在项目做多了之后,必然而然的会去思考如何简化日复一日的重复劳动,从辛劳的体力劳动中解脱出来将精力用到更有用的地方去。而作为B/S系统的开发,消耗最多时间的莫过于表单处理。只要有信息交互,不可避免的会用到表单,从最原始的POST/GET到目前流行的Ajax,从Struts1的流行到WebWork、Struts2、SpringMVC等服务器端架构的设计,初衷都是为了简化复杂的表单业务逻辑处理。然而这些似乎还不够,某个组件或框架本身只能解决它所在位置上的单一问题,如何从众多框架的设计思想中提炼精髓,有效的组合运用,最终实现最少的代码量满足最多的业务需求,才是软件设计开发的王道...

设计思想

  1. 可用性
  2. 最少的代码
  3. 直观的信息表达
  4. 可扩展性
  5. 可重用性
  6. 任何设计都不是万能药

现阶段解决方案

作为懒人当然先用流程的开源框架最为方便(精力有限,有余力的同学可自行开发)。

 

  1. 基于Jquery-Tools的声明式表单校验及信息提示组件
  2. 基于Jquery-Form的表单自动序列化及Ajax提交组件
  3. 基于Jquery-Loading的遮罩层,用于提交后遮盖页面防止提交过程中的意外操作。

逻辑定义

  1. 采用Ajax方式的提交,页面无刷新,因此也不再需要ActionFrom之类的服务端支持;
  2. 表单的method和action标识了Ajax提交的模式及服务路径;
  3. 声明式的校验逻辑直接定义到对应的表单控件。如required代表该字段必选,max-length代表可输入的最大长度;
  4. 通过传递form对象给最终的提交方法,用方法封装的方式实现从校验到提交到提交完成回调的完整逻辑,简化页面的代码量(通常一个系统中页面提交的逻辑只会有几种);

业务流程

  1. 提交方法执行后,首先触发表单校验;
  2. 通过遍历表单控件及其上绑定的校验规则,对表单控件输入的有效性进行校验,校验失败时提示相关失败信息,并终止提交;
  3. 当所有校验都通过时,自动调用Ajax提交,提交参数通过表单的自动序列化得到;
  4. 服务器端代码执行完后,返回响应,触发Ajax的回调函数(通常会提供一个默认的),回调函数自动执行;
  5. 完成表单。

示例截图

除了为表单控件多加了几个属性,与通常的表单没有任何区别,更没有复杂的JS代码了。

注:更精简的模式是直接定义提交按钮为submit,然后拦截submit,这样连按钮都跟原来没区别了。



现阶段的问题

 

  1. 信息提示对于动态控件支持不够:如类似MiltipleSelect组件,将默认的<select>隐藏,改用DIV来模拟,由于popup信息提示依赖于控件的定位,控件被隐藏后popup将错位。
  2. 对于checkbox之类的多选控件支持不够:如服务端自动生成的多个checkbox,需要指定某些需要校验某些不需要的情况




  • 大小: 67.6 KB
0
0
分享到:
评论

相关推荐

    PHPForm:极简主义,面向PHP的极其面向对象的表单抽象模型

    PHPForm是一个针对PHP开发者的强大工具,它采用极简主义设计哲学,旨在简化网页表单处理的复杂性,提供一个高度面向对象的抽象模型。这个库的核心目标是帮助开发者更高效地构建、验证和处理用户提交的表单数据,同时...

    蓝色欧美形式pc+wap休闲旅行酒店网页模板代码.zip

    "响应式极简公司宣传网站模板"强调了模板的设计理念,即极简主义,这种风格通常以简洁的布局、清晰的字体和少量的颜色为特点,有助于突出主要内容,提高用户对信息的理解和吸收。同时,响应式设计确保了在不同设备上...

    Vux基于Vue和WeUI移动端UI组件

    - **简洁**:WeUI 设计风格注重简洁,遵循微信的极简主义理念。 - **一致性**:所有组件都保持一致的视觉样式和交互体验,确保用户在不同页面间切换时有连续的感觉。 - **响应式**:WeUI 考虑到不同设备的屏幕...

    min-personal-portfolio:个人投资组合网站

    【标题】"min-personal-portfolio:个人投资组合网站"是一个专门为前端导师设计的极简主义作品集项目。这个项目的核心目标是展示个人在IT行业,尤其是前端开发领域的专业技能和成就,通过一个简洁、优雅的在线平台...

    html界面样式.zip

    这个“html界面样式.zip”文件包含了一个基于HTML5的个人介绍静态界面,其设计风格简洁而简约,适合那些追求极简主义的用户。界面设计通常包括多个页面,每个页面都可以独立进行修改和调整,以适应不同的展示需求。 ...

    minimalist:最小化设计CSS框架

    "minimalist"框架通过预定义的CSS类和规则,简化了开发者编写样式的过程,让他们可以快速地搭建符合极简主义设计原则的网页。 框架通常包含一系列预先编写的CSS代码,以及可能的JavaScript组件,以实现常见的网页...

    前端开源库-naka

    nakaNAKA的核心理念是极简主义,这意味着它将复杂的前端逻辑进行了高度抽象和封装,使得开发者可以更专注于业务逻辑,而不是底层实现细节。 **一、nakaNAKA的特性** 1. **小巧轻盈**:nakaNAKA的体积小,加载速度...

    PHPWind论坛 简约模板

    同时,图片的设计也会遵循极简主义原则,保持清晰、直观。 6. **模板配置**:在PHPWind后台,管理员可以方便地切换和配置模板,包括启用、预览、上传和编辑模板。简约模板的配置可能包括色彩方案、字体设置等,允许...

    website:我的网站设计简洁明了

    2. **极简主义**:设计风格简约,注重内容的清晰呈现,避免过多的装饰元素,以提高用户体验。这种设计通常包括简洁的布局、色彩搭配和字体选择。 3. **个人站点**:这个网站可能是一个人的在线简历、博客或者作品集...

    黑白简约Bootstrap响应式品牌设计机构

    黑白简约设计通常意味着网站以黑白灰为主色调,强调清晰的线条、对比度和极简主义,这样的设计往往能给人留下专业、现代的印象。响应式设计则意味着网站能够根据访问者的设备屏幕大小自动调整布局,确保在手机、平板...

    concrete.css:一个简单CSS微框架

    1. **简约设计**:concrete.css的核心理念是极简主义,它不包含过多的装饰性元素,而是专注于提供功能性样式,使网页保持干净和清晰的视觉效果。 2. **响应式布局**:框架内置了响应式设计,能够适应不同屏幕尺寸的...

Global site tag (gtag.js) - Google Analytics