基于jquery的提交、编辑页面js编写框架
来源:互联网 发布:初级程序员报名 编辑:程序博客网 时间:2024/06/04 18:18
无验证设计
基于jquery的提交、编辑页面js编写框架,设计思路,将js按照如下进行划分
1.页面数据初始化以及控件显示控制
2.填写状态控件绘出(不从ajax取数据,单一的绘制行为)
3.编辑状态控件绘出(不从ajax取数据,单一的绘制行为)
4.控件操作事件绑定(获取焦点、失去焦点、点击)
5.控件数据事件绑定(长度校验、业务规则校验、格式校验、不为空或有效值校验)
6.用户提交数据
7.页面数据储存model(新值、旧值、提交数值),依据特定的css样式名寻找所需数据
/// <reference path="jquery.js" />$(function () { pageGlobal.data = {}; pageGlobal.page = new pageGlobal.pt("submitdata", pageGlobal.data);});pageGlobal.pt = function (pro, data) { this.pro = pro || "submitdata"; this.data = data || {}; this.model = new Object; this.data.controls = new Array;//控件id数组 this.controlEvent = new Object;//控件事件容器对象 this.commonEvent = new Object;//公用事件 this.dataEvent = new Object;//数据事件 this.init = function () { this.initFn(); this.common(); } this.init.apply(this, arguments);};//页面数据初始化以及控件显示控制pageGlobal.pt.prototype.initFn = function () { var that = this; var common = that.commonEvent; that.model=common.extractModel(); //-------------------控件绘制-------------------------------// var ctlArr = that.data.controls; //-------------------控件基础事件-------------------------------//事件命名规则:id+事件类型名 var ctleventObj = that.controlEvent; //ctleventObj["idclick"]=function(){ //逻辑处理 //}; common.controlBindEvent(ctlArr, ctleventObj); //-------------------数据事件-------------------------------//事件类型:(长度校验LengthCheck、业务规则校验RulesValidation、格式校验FormatCheck、必填校验Required),命名规则:id+事件类型名 var dataEventObj = that.dataEvent; //dataEventObj["idlc"]=function(){ //逻辑处理 //return true;如果通过验证否则返回false //}; common.dataBindEvent(dataEventObj, that.model); //-----------------数据提交逻辑函数---------------------------------//};pageGlobal.pt.prototype.common = function () { var that = this; //抽取数据对象 that.commonEvent.extractModel = function (className) { var model = new Object; model.json = new Object;//准备作为json对象提交的数据 model.arr = new Array;//id存储数组 var inputs = $(className); if (inputs) { for (var i = 0; i < iwwnputs.length; i++) { var val = $("#" + inputs[i].id).val(); model["o" + inputs[i].id] = val; //设置为旧变量 model["n" + inputs[i].id] = val; //设置为新变量 model.json[inputs[i].id] = val; model.json[inputs[i].id].ev = new Array; model.json[inputs[i].id].evAction = function () { for (var i = 0; i < this.ev.length; i++) { if (!this.ev[i]()) return false; }; return true; }; model.arr.push(inputs[i].id); }; }; return model; }; //更新数据对象 that.commonEvent.updateModel = function (model, className) { var inputs = $(className); if (inputs) { for (var i = 0; i < inputs.length; i++) { model["n" + inputs[i].id] = $("#" + inputs[i].id).val(); //设置为新变量 model.json[inputs[i].id] = $("#" + inputs[i].id).val(); }; }; return model; }; //控件事件绑定 that.commonEvent.controlBindEvent = function (ctlArr, ctleventObj) { var eventTypeArr = ["click", "blur", "focus", "mousemove"]; for (var i = 0; i < ctlArr.length; i++) { for (var j = 0; j < eventTypeArr.length; j++) { var eventName =ctlArr[i]+ eventTypeArr[j]; if (ctleventObj[eventName]) { $("#" + ctlArr[i]).live(eventTypeArr[j], ctleventObj[eventName]); }; }; }; }; //数据事件绑定 that.commonEvent.dataBindEvent = function (dataEventObj, model) { var eventTypeArr = ["lc", "rv", "fc", "r"]; var ctlArr = model.arr; for (var i = 0; i < ctlArr.length; i++) { for (var j = 0; j < eventTypeArr.length; j++) { var eventName = ctlArr[i]+eventTypeArr[j]; if (dataEventObj[eventName]) model.json[ctlArr[i]].ev.push(dataEventObj[eventName]); }; }; };};
0 0
- 基于jquery的提交、编辑页面js编写框架
- 编写一个基于JQuery的自定义导航小框架
- 离开编辑页面提示,并且在提交时不进行提示的jquery
- 为Drupal添加使用jquery框架编写的js文件
- 国人编写的、超牛的、基于jQuery插件式、监听模式(无侵入)的html页面form表单通用验证框架
- 基于jquery与jquery.form.js的表单文件流提交和上传体验提升
- Jquery,JS的表单提交
- 编写一个提交、显示的jsp页面
- jquery 页面内编辑的表格
- 编写自己的js框架
- 基于ssm框架的个人博客系统(10)--编写博客页面开发
- 原生js和jquery框架下的页面刷新和页面跳转
- 基于ntkoocx.js的在线word编辑
- 基于jquery的异步上传,异步提交
- 基于JQuery框架的AJAX
- 基于JQuery框架的AJAX
- 分享一个基于jQuery,backbone.js和underscore.js的消息提示框架 - Backbone.Notifier
- 基于jquery的ajax.js
- 判断一个文件夹下的txt文件内部字符串 和另外一个txt每一行的字符串比较得到的内容
- 计算机视觉领域的一些牛人博客,超有实力的研究机构等的网站链接
- [蓝桥杯历届试题] 错误票据
- Selenium私房菜系列0 -- Selenium前言
- 详细剖析二进制文件的读写
- 基于jquery的提交、编辑页面js编写框架
- HDU1528二分匹配标准代码~
- iOS通知栏磨砂透明背景的代码实现(高斯模糊)
- C#委托和事件的小结
- Android应用程序UI界面设计官方权威解读
- Struts2中Action接收传递的参数
- Oracle Dual 表详解
- 状态模式类图
- 操作系统(9)I/O系统管理