利用jquery的易扩展特性简化JS的开发

本文介绍了一种使用jQuery简化资料填报页面开发的方法,通过动态扩展属性实现了输入框的动态控制、数据验证等功能,适用于多页面及大量变量的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.前言

Jquery的出现让Web前端开发人员从繁重的HTML和javascript中解放出来,使其可以有更多的精力专注于页面的展现和业务处理。在项目的开发中应充分利用jquery的动态扩展属性来简化我们的开发,在最近的一个项目中就遇到这样一个情景,通过动态扩展避免了相似代码的重复开发。

2.背景

         项目要求提供一个资料填报(数据录入、文件上传)功能,填报的资料可以反显,编辑,对数据的更改要有详细的审计,资料填报的样式如下:


本身实现这样一个页面很简单,但项目中这样的填报页面有3,40个,每页有2,30个变量需要处理。这就需要有一个好点的方法来处理一些通用的问题,我们知道资料填写页面一般需要做几件事情:

a.根据前置选择条件确定后续是否需要输入。

b.数据有效性的验证

c.数据组织保存

d.数据反显

另外还希望达到容易修改,非开发人员也能胜任,降低部署测试、后续需求维护的成本。

 

3.实现

         要做的事情就是如何将以上的几点归纳为统一实现,填报页面中不包含任何javascript语句,所以我们需要用jquery在页面显示时动态调整各种编辑框的行为。实现方式是:

a.      为需要动态可用的编辑框指定可用的前置条件 

<tr>
			<td valign="top" align="right">是否设立专门的信息管理机构:</td>
			<td>
				<table>
					<tr>
						<td colspan="2">
							<input type="checkbox" chkboxmode="chk_only_one" name="has_aqgljg" value="1"/>是
							<input type="checkbox" chkboxmode="chk_only_one" name="has_aqgljg" value="0"/>否
						</td>
					</tr>
					<tr>
						<td align="right">管理机构名称:</td>
						<td><input id="IdJGMC" type="text" chkfun="isphone" name="aqgljg_jgmc" enablebind="has_aqgljg:1"/></td>
					</tr>
					<tr>
						<td align="right">负责人姓名:</td>
						<td><input type="text" name="aqgljg_fzr"  enablebind="has_aqgljg:1"/></td>
					</tr>
					<tr>
						<td align="right">职务:</td>
						<td><input type="text" name="aqgljg_zw"  enablebind="has_aqgljg:1"/></td>
					</tr>
					<tr>
						<td align="right">电话:</td>
						<td><input type="text" name="aqgljg_dh"  enablebind="has_aqgljg:1"/></td>
					</tr>
				</table>
			</td>
		</tr>


djbhbm_bmmc,djbhbm_lxr变量等添加enablebind属性表明只有在has_djbhbm值选择为1的时候才可用(可输入)。

b.      实现一批数据有效性检测函数,定义input标签的时候指定使用的检测函数

标签添加chkfun属性在点击保存的时候对该输入项做有效性检测,min,max限制有效输入的最小和最大长度。chkfun为isint时min,max表示最小值和最大值。chkboxmode属性值chk_only_one限制同名多个checkbox只允许同时选择一个,类似radio。 属性值chk_must_one限制同名checkbox必须最少选择一个,这些都在保存前做检测。

c.      每页输入的数据作为一条记录在数据库中用json格式保存,在保存时候枚举所有的input标签,判断input的类型取值,组织成json并base64编码后提交到服务器。

d.      解析json数据,根据变量名找到input标签并设置值。

e.      动态为每个input标签添加title属性,保存json数据的时候一并保存,方便数据查看,并且在做数据审计的时候需要知道每个变量所描述的信息

        可以看出input标签所表示的内容是 $(this).parent().prev().html()

所以实现上面引擎的流程是:

页面加载:设置所有input标签的title属性->获取该页面的json数据->为input标签赋值->为checkbox,radio等绑定处理事件->设置input标签是否可用。

保存:调用chkfun检查输入是否有效->检查checkbox的chkboxmode选择是否有效->枚举所有input取值生成json并base64编码->保存

资源下载:http://download.youkuaiyun.com/detail/scybs/7656433

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值