概诉

网上提交预约申请单,线下面交完成实体卡的交付和办理。

本文主要从技术角度分析预约页面,仅供初学者技术交流使用。

表单输入和校验

系统通过2步的确认点击到达信息输入页面。

地址:/bjggzxc/TzYybk_third_1.html

验证规则:

字段名 字段ID 校验规则1 验证规则2 验证规则3 验证规则4
姓名 U_NAME 非空验证 只能输入中英文字符以及逗号、点、减号、下划线,且至少两个字符  
性别 U_SEX 非空验证 性别与身份证不匹配    
出生日期 U_BIRTHDAY 非空验证 日期格式不正确,输入类似2011-01-01的日期! 出生日期与身份证不匹配 18-60岁之间才能预约!
户口所在地 U_BIRTHPLACE 非空验证 户口所在地只能输入中文,填写省市区(县)即可,最少两个汉字!  
证件类型 U_ZJTYPE 非空验证      
证件号 U_ZJNUM 非空验证 身份证号码校验失败,IdentityCodeValid 此证件号码已经预约过,请不要重复预约! 校验出生日期 和 性别

居住地址

U_TXPLACE 非空验证 居住地址只能输入中英文字符、数字以及逗号、点、减号、下划线,且至少五个字符  

工作居住证号

U_ZZZNUM   非北京户口用户必须输入工作居住证号码,且只能输入12位数字,北京户口请在户口所在地中包含“北京”两个字。  
手机号 U_PHONE 非空验证 手机号只能是11位数字!    

电子邮箱

U_EMAIL 非空验证 电子邮箱格式不正确!    

联系人姓名

U_U_NAME 非空验证 只能输入中英文字符以及逗号、点、减号、下划线,且至少两个字符  

性别

U_U_SEX 非空验证      

与联系人的关系

U_U_RELATION 非空验证 与联系人的关系只能输入汉字,最少两个字符!    
联系电话 U_U_TELEPHONE 非空验证 联系电话只能是数字或横杠,最少8位!    

通讯地址

U_U_TXPLACE 非空验证 联系人通讯地址只能输入中英文字符、数字以及逗号、点、减号、下划线,且至少五个字符  
选择办卡地点 U_CARD_ADDRESS 非空验证      
  Y_PC        
  PC_ID        

验证代码:

  1 $(function() {
  2     $('#U_BIRTHDAY').datetimepicker({
  3          language: 'zh-CN',
  4          minView: '2',  //只选择日期,不选择时间
  5          format: 'yyyy-mm-dd',
  6          startDate: '${yypc.ksrq}',
  7           endDate: new Date(),
  8          autoclose: true ,
  9         todayBtn: true
 10      }).on("changeDate", function(e){
 11 //         console.log($("#applyForm").data('formValidation'));
 12          $("#applyForm").bootstrapValidator('revalidateField', 'U_BIRTHDAY');
 13     });
 14
 15     var validForm = $('#applyForm').bootstrapValidator({
 16         fields: {
 17             "U_NAME": {
 18                 validators: {
 19                     notEmpty: {  //非空验证
 20                         message: '姓名不能为空!'
 21                     },
 22                     regexp: {
 23                         regexp: /^[a-zA-z\u4e00-\u9fa5,\.\-_]{2,}$/,
 24                         message: '只能输入中英文字符以及逗号、点、减号、下划线,且至少两个字符'
 25                     }
 26                 }
 27             },
 28             "U_SEX": {
 29                 validators: {
 30                     notEmpty: {  //非空验证
 31                         message: '性别不能为空,请选择!'
 32                     },
 33                     callback: {
 34                         message: '性别与身份证不匹配!',
 35                         callback: function(value, validator, $field) {
 36                             var zjlx = $('select[name=U_ZJTYPE]').val();
 37                             var sfzh = $('input[name=U_ZJNUM]').val();
 38                             var sex=$("input[name='U_SEX']:checked").val();
 39
 40                             if (sex != "" && zjlx == "身份证" && (sfzh.length == 18 || sfzh.length == 15)) {
 41                                 var sexFromSfzh = "";
 42                                 if(sfzh.length == 18) {
 43                                     sexFromSfzh = sfzh.substring(16, 17);
 44                                 } else if(sfzh.length == 15) {
 45                                     sexFromSfzh = sfzh.substring(14);
 46                                 }
 47                                 console.log(sexFromSfzh);
 48                                 var sexCode = parseInt(sexFromSfzh);
 49
 50                                 if(sexCode % 2 == 0)
 51                                     sexFromSfzh = "女";
 52                                 else
 53                                     sexFromSfzh = "男";
 54
 55                                 if(sex != sexFromSfzh)
 56                                     return false;    // or false
 57                             }
 58                             return true;
 59                         }
 60                     }
 61                 }
 62             },
 63             "U_BIRTHDAY": {
 64                 validators: {
 65                     notEmpty: {  //非空验证
 66                         message: '出生日期不能为空!'
 67                     },
 68                     date: {
 69                         message: '日期格式不正确,输入类似2011-01-01的日期!',
 70                         format: 'YYYY-MM-DD'
 71                     },
 72                     callback: {
 73                         message: '出生日期与身份证不匹配!',
 74                         callback: function(value, validator, $field) {
 75                             var zjlx = $('select[name=U_ZJTYPE]').val();
 76                             var sfzh = $('input[name=U_ZJNUM]').val();
 77                             if (zjlx == "身份证" && (sfzh.length == 18 || sfzh.length == 15)) {
 78                                 var birthdayFromSfzh = "";
 79                                 if(sfzh.length == 18) {
 80                                     birthdayFromSfzh = sfzh.substring(6, 14);
 81                                 } else if(sfzh.length == 15) {
 82                                     birthdayFromSfzh = "19" + sfzh.substring(6, 12);
 83                                 }
 84                                 if(value.replace(/-/g,'') != birthdayFromSfzh)
 85                                     return false;    // or false
 86                             }
 87                             return true;
 88                         }
 89                     },
 90                     callback: {
 91                         message: '18-60岁之间才能预约!',
 92                         callback: function(value, validator, $field) {
 93                             var d = Date.parse(value.replace(/-/g,'/'));
 94                             var date = new Date();
 95                             var now = date.format("yyyyMMdd");
 96                             date.setTime(d);
 97                             date.addYears(18);
 98                             var date1 = date.format("yyyyMMdd");  //18岁是哪天
 99                             date.addYears(42);
100                             var date2 = date.format("yyyyMMdd");  //60岁是哪天
101                             console.log(date1);
102                             console.log(date2);
103                             console.log(now);
104                             return (now >= date1 && now <= date2);
105                         }
106                     }
107                 }
108             },
109             "U_BIRTHPLACE": {
110                 validators: {
111                     notEmpty: {  //非空验证
112                         message: '户口所在地不能为空!'
113                     },
114                     regexp: {
115                         regexp: /^[\u4e00-\u9fa5]{2,}$/,
116                         message: '户口所在地只能输入中文,填写省市区(县)即可,最少两个汉字!'
117                     }
118                 },
119                 onSuccess: function(e, data) {
120                     data.bv.revalidateField('U_ZZZNUM');
121                 }
122             },
123             "U_ZJTYPE": {
124                 validators: {
125                     notEmpty: {  //非空验证
126                         message: '证件类型不能为空,请选择!'
127                     }
128                 }
129             },
130             "U_ZJNUM": {
131                 validators: {
132                     notEmpty: {  //非空验证
133                         message: '证件号码不能为空!'
134                     },
135                     callback: {
136                         message: '身份证号码校验失败!',
137                         callback: function(value, validator, $field) {
138                             var zjlx = $('select[name=U_ZJTYPE]').val();
139                             if (zjlx == "身份证")
140                                 return IdentityCodeValid(value);
141                             else
142                                 return true;
143                         }
144                     },
145                     remote: {
146                         message: '此证件号码已经预约过,请不要重复预约!',
147                         url: 'TzYybk_checkZjhm_1.html',
148                         type: 'POST',
149 //                        delay: 1000,
150                         data: {
151                             Y_PC: $('input[name=Y_PC]').val(),
152                             PC_ID: $('input[name=PC_ID]').val()
153                         }
154                     }
155                 },
156                 onSuccess: function(e, data) {
157                     data.bv.revalidateField('U_BIRTHDAY');
158                     data.bv.revalidateField('U_SEX');
159                 }
160             },
161             "U_TXPLACE": {
162                 validators: {
163                     notEmpty: {  //非空验证
164                         message: '居住地址不能为空!'
165                     },
166                     regexp: {
167                         regexp: /^[a-zA-z0-9\u4e00-\u9fa5,,  \.\-_]{5,}$/,
168                         message: '居住地址只能输入中英文字符、数字以及逗号、点、减号、下划线,且至少五个字符'
169                     }
170
171                 }
172             },
173             "U_ZZZNUM": {
174                 validators: {
175                      callback: {
176                         message: '非北京户口用户必须输入工作居住证号码,且只能输入12位数字,北京户口请在户口所在地中包含“北京”两个字。',
177                         callback: function(value, validator, $field) {
178                             var hk = $('input[name=U_BIRTHPLACE]').val();
179                             if (hk != "" && hk.indexOf("北京") < 0 && value == "") {
180                                    return false;    // or false
181                             } else {
182                                 if(value != "") {
183                                     if(/^[0-9]{12}$/m.test(value))
184                                         return true;
185                                     else
186                                         return false;
187                                 } else
188                                     return true;
189                             }
190                         }
191                     }
192                 }
193             },
194             "U_PHONE": {
195                 validators: {
196                     notEmpty: {  //非空验证
197                         message: '手机号不能为空!'
198                     },
199                     regexp: {
200                         regexp: /^[0-9]{11}$/,
201                         message: '手机号只能是11位数字!'
202                     }
203                 }
204             },
205             "U_EMAIL": {
206                 validators: {
207                     notEmpty: {  //非空验证
208                         message: '电子邮箱不能为空!'
209                     },
210                     regexp: {
211                         regexp: /^[a-zA-Z0-9_\-.]+@([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}$/,
212                         message: '电子邮箱格式不正确!'
213                     }
214                 }
215             },
216             "U_ZJTYPE": {
217                 validators: {
218                     notEmpty: {  //非空验证
219                         message: '证件类型不能为空!'
220                     }
221                 }
222             },
223             "U_U_NAME": {
224                 validators: {
225                     notEmpty: {  //非空验证
226                         message: '联系人姓名不能为空!'
227                     },
228                     regexp: {
229                         regexp: /^[a-zA-z\u4e00-\u9fa5,\.\-_]{2,}$/,
230                         message: '只能输入中英文字符以及逗号、点、减号、下划线,且至少两个字符'
231                     }
232                 }
233             },
234             "U_U_SEX": {
235                 validators: {
236                     notEmpty: {  //非空验证
237                         message: '性别不能为空!'
238                     }
239                 }
240             },
241             "U_U_RELATION": {
242                 validators: {
243                     notEmpty: {  //非空验证
244                         message: '与联系人的关系不能为空!'
245                     },
246                     regexp: {
247                         regexp: /^[\u4e00-\u9fa5]{2,}$/,
248                         message: '与联系人的关系只能输入汉字,最少两个字符!'
249                     }
250                 }
251             },
252             "U_U_TELEPHONE": {
253                 validators: {
254                     notEmpty: {  //非空验证
255                         message: '联系电话为空!'
256                     },
257                     regexp: {
258                         regexp: /^[0-9()-]{8,}$/,
259                         message: '联系电话只能是数字或横杠,最少8位!'
260                     }
261                 }
262             },
263             "U_U_TXPLACE": {
264                 validators: {
265                     notEmpty: {  //非空验证
266                         message: '联系人通讯地址不能为空!'
267                     },
268                     regexp: {
269                         regexp: /^[a-zA-z0-9\u4e00-\u9fa5,,  \.\-_]{5,}$/,
270                         message: '联系人通讯地址只能输入中英文字符、数字以及逗号、点、减号、下划线,且至少五个字符'
271                     }
272                 }
273             }
274         }
275     })
276     .on('success.form.bv', function(e) {
277         e.preventDefault();
278         editPcSave();
279     });
280 })

View Code

提前准备好合格的注册/预约信息是件很重要的事情,通过代码提取然后进行自动的填写。

用一个本地库去保存合格的注册信息。

循环:提取信息,然后提交服务器。

确认提交优化

提前判断信息都通过验证以后(合格),除了用editPcSave中的ajaxSubmit来提交信息以外,如下:

function submitToSrv(){
$('#applyForm').ajaxSubmit({type : "post",url : "TzYybk_save_1.html",beforeSubmit : function() {$("button").attr("disabled", true);},success : function(responseText, statusText, xhr, $form) {var response = $.parseJSON(responseText);if(response.status=="ok") {console.log(response.uid);document.location="TzYybk_success_1.html?uid=" + response.uid;} else {alert(response.message);}},error : function(request, textStatus, e) {$("button").attr("disabled", false);}});
};setInterval("submitToSrv()", 5000);

View Code

另外:提高成功概率的主要影响因素

  1. 对网页资源的本地化,优化;给服务器减轻压力

    1. 对资源进行缓存jquery-1.11.2.min.js
    2. 对资源进行映射。
  2. 服务器测速(多服务器情况下) 定义测速机制,根据数据包路由信息确定最优服务器IP地址,直接缓存到本地hosts文件中
  3. 智能DNS切换 多服务器情况下,切换选择基于本机的最优服务器
  4. CDN返回缓存 CDN判断

结语

这个1.0版本的分析还有些技术细节有待优化.

欢迎探讨,如果您想找人帮忙:

转载于:https://www.cnblogs.com/backuper/p/5337411.html

某预约系统分析 某区公共自行车租车卡在线预约,关于如何提高成功概率相关推荐

  1. 2013年数学建模国赛D题(城市公共自行车系统运行状况)优秀论文.doc

    本博客下载链接包含修改的word版本, 可免费下载阅览学习, 也可作为数学建模相关课程作业修改上交: 链接:https://pan.baidu.com/s/1cBJvETKh5HYo0doelwT8y ...

  2. 基于SSM技术的医院在线预约诊疗系统设计与实现毕业设计源码011130

    医院在线预约诊疗系统的设计与实现 摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理.在现实运用中,应用软件的工作规则和开发 ...

  3. 基于SSM技术的医院在线预约诊疗系统设计与实现 毕业设计-附源码011130

    医院在线预约诊疗系统的设计与实现 摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理.在现实运用中,应用软件的工作规则和开发 ...

  4. 计算机毕业设计PHP汽车4S店保养在线预约系统

    项目介绍 针对4s店汽车管理工作的现状,结合信息管理系统进行4s店汽车管理的信息化设计. 本设计尝试用php在网络上架构一个4s店汽车保养预约平台,让每一个汽车保养者都能在需要的时候找到一个可以保养预 ...

  5. 基于PHP汽车4S店保养在线预约系统-计算机毕业设计

    项目介绍 针对4s店汽车管理工作的现状,结合信息管理系统进行4s店汽车管理的信息化设计. 本设计尝试用php在网络上架构一个4s店汽车保养预约平台,让每一个汽车保养者都能在需要的时候找到一个可以保养预 ...

  6. 基于Uniapp的在线预约挂号系统设计WebAPP

    摘 要 现代信息化社会下的数据管理对活动的重要性越来越为明显,人们出门可以通过网络进行交流.信息咨询.查询等操作.网络化生活对人们身体健康也有了非常大的考验,通过网上进行挂号就医生的人也是越来越多,信 ...

  7. (附源码)基于SSM技术的医院在线预约诊疗系统设计与实现 毕业设计 011130

    医院在线预约诊疗系统的设计与实现 摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理.在现实运用中,应用软件的工作规则和开发 ...

  8. 用C语言做一个公共自行车租赁系统:要求能够提供公共自行车的租赁和管理,能够记录用户的租车记录和时间,能够生成租车报告。

    这是一个比较复杂的项目,需要多方面的知识和技能,包括C语言编程.数据结构.算法等.下面是一个简单的思路,供您参考: 定义数据结构 首先需要定义数据结构,包括自行车.用户.租车记录等,例如: // 自行 ...

  9. 珠海公共自行车系统分析系列 - 硬件分析

    系统架构     能作为城市的基础设施,又是7*24小时(官方网站说的是7*24小时,不过在查询机显示的租赁时间是5:00-24:00,正常来说是7*16小时才对)的无人值守望和通借通还功能服务,整个 ...

最新文章

  1. cron和crontab
  2. struts2中改变struts.xml默认路径
  3. 注册中心—组件—Consul
  4. 制作多系统启动盘教程_制作U盘启动盘教程
  5. php可以支持代码重用技术的命令,Linux下的编程 PHP高级技巧全放送(一)
  6. 10kv线路负载率计算_10kV配电线路保护的整定计算
  7. python 将多张大小不同的图依次放入较大的黑色背景_用户消费行为分析(Python)...
  8. mysql隔离性与隔离级别
  9. 微软MCITP系列课程(二四)利用组策略部署软件
  10. Matlab中freqz函数使用
  11. C++(指针和高级指针)-上篇
  12. linux中进程unit是什么意思,linux-日常运维- unit介绍
  13. 《STL源码分析》学习笔记 — STL概论与版本简介
  14. 电瓶车.换电瓶(20181122)
  15. 华为手机相机:专利曝光装“单反镜头”
  16. transformers之中mt5和t5的区别
  17. 几种Linux备份方法
  18. python之网页自动打卡
  19. Maya动画1:基础知识小球弹跳
  20. mapreduce多目录输出(MultipleOutputFormat和MultipleOutputs)

热门文章

  1. 分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(3月12日-3月18日)
  2. 医疗保健数据接口_为什么需要用于医疗保健业务的应用程序
  3. JAVA毕业设计果蔬在线销售系统计算机源码+lw文档+系统+调试部署+数据库
  4. speccpu2006整型浮点型测试
  5. jaybird+x3+android,小米首款运动耳机
  6. 求阶乘求1!+2!+…+20!,其中x!=1*2*…*x,表示阶乘
  7. mili u盘 android手机,mili otg数据线如何使用?
  8. python 矩阵类型转换_Python 矩阵转置的几种方法小结
  9. c 语言中eof 是什么,什么是C编程语言中的EOF?
  10. 别让STAR原则的简历毁了你的前途!