- 浏览: 764888 次
- 性别:
- 来自: 上海
-
文章分类
最新评论
-
飞出四季做的茧:
z赞
JAVA日期格式化字符串的24小时制 -
daniaowansui:
亲测,可行!
JS 在open打开的窗口中调用父页面JS方法 -
zh_123:
ie9测试过吗貌似列不能冻结啊!
Css 实现的表头, 表列冻结, 可以超大数据量 -
Jxdwuao:
IXR 写道少年,在哪里混呢?在虹桥机场这边阿, 兄弟你在何方 ...
修改JS文件FF刷新不生效 -
IXR:
少年,在哪里混呢?
修改JS文件FF刷新不生效
公司创建投保方案页面是一个 多因子,多保障, 连带附加险种的表单。
如果通过传统的方式提交,后台难免难以获取。现在公司通过利用JSON对象组织成参数,通过AJAX提交,不但无刷新,而且后台也比较好的获得数据。
方式如下:
先将用到 的JS 验证方法列出如下:
function isString(el, lbl) { el = this.getDom(el); if (el.value == "") { alert(lbl + "是必填项,不能为空!"); this.focus(el, ""); return false; } var value = el.value; if (/<\/?([a-z]|[A-Z])+>/g.test(value)) { alert(lbl + "字段不能包含HTML标签代码,比如<html>、</html>、<HTML>、</HTML>!"); this.focus(el, ""); return false; } return true; } function isInt(el, lable) { el = this.getDom(el, true); if (el.value == "") { alert(lbl + "是必填项,不能为空!"); this.focus(el, ""); return false; } var value = el.value; if (!/^\d*$/.test(value)) { alert(lable + "输入的值必须为整数!"); this.focus(el, ""); return false; } return true; } function isDecimal(el, length, scale, lable) { var self = this; el = self.getDom(el, true); if (el.value == "") { alert(lbl + "是必填项,不能为空!"); this.focus(el, ""); return false; } var value = el.value; var regString = "^\\d{1," + (length - scale) + "}(\\.\\d{1," + scale +"})?$"; var reg = new RegExp(regString); if (!reg.test(value)) { alert(lable + "输入的值必须为数值,且总位数不超过" + length + ",小数位数不能超过" + scale + "!"); self.focus(el, ""); return false; } return true; } function isDate(el, lable) { var self = this; el = self.getDom(el, true); if (el.value == "") { alert(lbl + "是必填项,不能为空!"); this.focus(el, ""); return false; } var value = el.value; //var reg = new RegExp("^\\d{4}-((((0[13578])|(1[02]))-(([0-2][0-9])|(3[01])))|(((0[469])|(11))-(([0-2][0-9])|(30)))|(02-[0-2][0-9]))$"); var reg = new RegExp("^\\d{4}-(((([13578])|(0[13578])|(1[02]))-(([1-9])|([0-2][0-9])|(3[01])))|((([469])|(0[469])|(11))-(([1-9])|([0-2][0-9])|(30)))|((2|02)-(([1-9])|([0-2][0-9]))))$"); if (!reg.test(value)) { alert(lable + "输入值的格式不对,格式为yyyy-MM-dd!"); self.focus(el, ""); return false; } return true; } function isDateTime(el, lable) { var self = this; el = self.getDom(el, true); if (el.value == "") { alert(lbl + "是必填项,不能为空!"); this.focus(el, ""); return false; } var value = el.value; //var reg = new RegExp("^\\d{4}-((((0[13578])|(1[02]))-(([0-2][0-9])|(3[01])))|(((0[469])|(11))-(([0-2][0-9])|(30)))|(02-[0-2][0-9])) ([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$"); var reg = new RegExp("^\\d{4}-(((([13578])|(0[13578])|(1[02]))-(([1-9])|([0-2][0-9])|(3[01])))|((([469])|(0[469])|(11))-(([1-9])|([0-2][0-9])|(30)))|((2|02)-(([1-9])|([0-2][0-9])))) ([01]\\d|2[0-3]):[0-5]\\d$"); if (!reg.test(value)) { alert(lable + "输入值的格式不对,格式为yyyy-MM-dd HH:mm!"); self.focus(el, ""); return false; } return true; }
数据组织的JS:
//初始化数据JSON对象,用于容纳所有表单数据 var datas = { ensureCode: new Array() }; //循环添加基础数据 for(var i = 0; i < baseConfig.length; i++){ var el = document.getElementById(baseConfig[i].name); if(el){ datas[baseConfig[i].name] = el.value; } } //添加保障数据 name = "isDefault_" + ensureName; el = document.getElementById(name); if(el){ datas[name] = el.value; } name = "ensureName_" + ensureName; el = document.getElementById(name); if(el){ datas[name] = el.value; } name = "ensureShortName_" + ensureName; el = document.getElementById(name); if(el){ datas[name] = el.value; } //组织并且发送数据 new Ajax.Request( _ryx_root + "/policyPrecept.do?method=preceptDataSubmit", // url { encoding: 'UTF-8', parameters: $H(datas), onSuccess: function (request) { var obj = request.responseText.strip().evalJSON(); var errors = obj.errors; var errorMsg = ""; for (var i = 0; i < errors.length; i++) { errorMsg += ("( " + (i + 1) + " ) " + errors[i] + "。"); } if (errors.length > 0) { alert(errorMsg); }else{ var resultValue = window.showModalDialog(_ryx_root + "/policyprecept/infoFinish.jsp", '', 'dialogWidth=200px;dialogHeight=100px'); if(resultValue != null && resultValue[0] == 'true' && resultValue[1] != null){ var productCode = obj.productCode; if(resultValue[1] == "3"){ window.location.href = _ryx_root + "/policyPrecept.do?method=initPolicyPrecept&classProductCode=" + productCode; } } } }, onFailure: function (request) { if ((request.status + "").startsWith("4")) { alert("发送服务器请求连接失败,可能是网络原因,请重试!"); } else if ((request.status + "").startsWith("5")) { alert("服务器端发生异常,请与系统管理员联系!"); } }, onException: function (request, e) { alert(e.message); }, onComplete: function (request) { } } );
后台可以通过正常的 request.getParameters(); 的方式来获取数据拉。
String [] ensureCodes = request.getParameterValues("ensureCodes"); //初始化投保方案保障信息 for(int x = 0; x < ensureCodes.length; x++){ TSchemeEnsure tEnsure = new TSchemeEnsure(); String ensureCodeStrings [] = ensureCodes[x].split("_"); String ensureCode = valiPreceptDate("保障代码", ensureCodeStrings[0]); //保障代码 String classCode = valiPreceptDate("险种代码", ensureCodeStrings[1].substring(0, 8)); //险种代码 String commonProductCode = valiPreceptDate("统筹产品代码", ensureCodeStrings[1]); //统筹产品代码
评论
1 楼
spp_1987
2010-10-22
我是通过jquery的插件form.js来做ajax,并组织了json数据,提交到后台去,但是我的后台却不无法正常的获取数据
后台获取数据的方法我是用request.getParameter()的
后台获取数据的方法我是用request.getParameter()的
发表评论
-
NODE__NPM INSTALL 报错处理
2022-08-22 20:32 0公司小程序开发,使用NODE管理包。 在代码目录执行NP ... -
JS调试
2018-09-06 15:11 0JQUERY:得到的元素有多个的时候用prop设置属性, 只 ... -
IE11高版本页面兼容问题
2018-06-21 09:47 2640页面在 FF 和 CHROME下显示正常,在IE11以下版本 ... -
Jquery 表格插件DataTables
2014-11-11 09:54 933可以实现自定义的排序,分页等功能, 要实现按照自己设定的 ... -
jquery根据name属性查找
2014-09-06 15:55 1060http://hbiao68.iteye.com/blog/ ... -
修改JS文件FF刷新不生效
2014-02-17 16:39 1565修改了trend_key.js 在 FF 刷新页面没用, ... -
Ext4 Grid规则校验
2013-11-22 10:46 1065Ext4 的排班规则列表, 需要在选中一个规则时, 判断是否 ... -
Ext4 Grid改变行选择方式
2013-08-29 11:00 1121Ext4 使用Gird 的列表, CheckBoxModel ... -
Ext4工具类使用
2013-07-31 15:27 1050在Ext4中的各种类型提供的静态方法工具类, 比如查询 S ... -
java JSON解析遇到的问题
2013-07-25 17:18 1617得到JSON对象之后, 进行解析的过程中, 遇到NULL值问 ... -
Ext4 表格分组和组标题的设置
2013-06-07 10:28 2597Ext.create(' ... -
EXT+struts2文件上传 返回的json乱码
2013-05-23 14:02 1570环境是 EXT4.2 + Struts2 。 别的页 ... -
JS学习
2012-12-28 13:10 891http://www.csdn.net ... -
HTML中css和js链接中的版本号
2012-10-24 13:29 969设置了版本号, 可以避免因为缓存带来的不能读取到最新修改的文件 ... -
Spring JSON格式传输
2012-10-17 16:39 936http://blog.csdn.net/leec ... -
FLASH的统计图表,饼图,方块统计图
2012-09-17 09:31 1122FLASH 的统计图表 -
Jquery动态列
2012-09-12 11:04 1766看到有人写的一个JQUERY动态列, 值得参考, 特转发下来 ... -
功能比较丰富支持附件的编辑器
2012-08-20 17:11 978KindEditor 4.x 文档 http://ww ... -
Jquery向导插件
2012-07-10 14:27 1196很多时候我们需要引导用户一步步完成, 还要设计成可以回退的功 ... -
ModalDialog模态对话框的刷新
2012-07-05 23:35 7364原文地址: http://wuaner.iteye.com ...
相关推荐
GridView是Android中的AdapterView家族成员之一,可以展示多行多列的数据。在XML布局文件中,我们需要定义GridView的id、列数(android:numColumns)以及其它样式属性。在Java代码中,我们通过设置Adapter来绑定...
Easy UI 的 `datagrid` 组件支持灵活的列宽分配,通过 `colspan` 和 `rowspan` 属性可以实现复杂的单元格合并,从而创建出多列多行的网格布局。 3. **响应式布局**:随着移动设备的普及,后台管理系统也需要适应...
3. **数据源处理**:通常,后台数据库会将数据进行行列转换,比如将多行的课程成绩数据转换为以学生为行,课程为列的格式。这可能涉及到SQL查询中的PIVOT操作或者自定义的存储过程。 4. **分页处理**:为了提高性能...
1. 数据网格:jqGrid能够轻松创建复杂的表格布局,支持多列、自定义格式化、行内编辑等多种显示模式。 2. 分页:内置分页功能,允许用户浏览大量数据而无需加载整个数据集,提高页面性能。 3. 排序:用户可以对任何...
4. **数据绑定**:如何将用户在复选框中的选择与后台数据模型同步,这可能涉及到JSON格式的数据交换和Ajax通信。 5. **测试和调试**:DEMO可能提供了调试信息和测试用例,帮助开发者理解代码工作原理并找出潜在问题...
1. **数据绑定**:myDataGrid的核心功能之一是数据绑定,它能将后台的数据源(如数据库、XML文件或JSON对象)与网格视图连接起来,自动更新视图中的内容以反映数据源的变化。 2. **排序**:用户可以通过点击列头...
4.6. form提交数据的三重门 4.6.1. ext中默认的提交形式 4.6.2. 使用html原始的提交形式 4.6.3. 单纯ajax 4.7. 验证苦旅 4.7.1. 不能为空 4.7.2. 最大长度,最小长度 4.7.3. 借助vtype 4.7.4. 自定义验证规则 4.7.5....
4.6. form提交数据的三重门 4.6.1. ext中默认的提交形式 4.6.2. 使用html原始的提交形式 4.6.3. 单纯ajax 4.7. 验证苦旅 4.7.1. 不能为空 4.7.2. 最大长度,最小长度 4.7.3. 借助vtype 4.7.4. 自定义验证规则 4.7.5....
在服务器端,你需要处理来自jqGrid的请求,根据`rowNum`、`sidx`(排序字段)和`sord`(排序方式)等参数来查询数据库并返回符合要求的数据。同时,别忘了在响应中包含分页信息,如总页数和总记录数。 通过以上...
集合视图则适合展示多列或多行的布局,如Instagram的照片网格。 五、网络请求与JSON解析 为了让Makestagram具有类似Instagram的功能,你需要从服务器获取数据,这涉及到网络请求。通常,我们会使用URLSession或第...