基于JQuery实现表单元素值的回写

Posted llguanli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于JQuery实现表单元素值的回写相关的知识,希望对你有一定的参考价值。

form.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html >
<head>
<meta http-equiv="ptable-Type" ptable="text/html; charset=GBK">
<title>表单回写</title>
<script type="text/javascript"	src="jquery.form_util.js"></script>
<script type="text/javascript">
$(function() {
	var obj={
			name:"张四",
			area:"591",
			sex:"11",
			enjoy:"100011",			
			note:"xxxxxxxxxxx"
	};
	FormUtil.set(obj);
	
});
</script>
</head>
<body>
姓名:<input id="name" name="name" type="text"><br/>
地区:<select id="area" name="area" >
	<option value="9999">---请选择---</option>
	<option value="591">福州</option>
	<option value="592">厦门</option>
	<option value="593">宁德</option>
</select><br/>
性别:<input id="sex" name="sex" type="radio" value="11">男 
<input id="sex" name="sex" type="radio" value="12">女<br/>
兴趣:<input id="enjoy" name="enjoy" type="checkbox" value="1">AA 
<input id="enjoy" name="enjoy" type="checkbox" value="1">BB
<input id="enjoy" name="enjoy" type="checkbox" value="1">CC
<input id="enjoy" name="enjoy" type="checkbox" value="1">DD
<input id="enjoy" name="enjoy" type="checkbox" value="1">EE
<input id="enjoy" name="enjoy" type="checkbox" value="1">FF
<br/>
备注:<textarea id="note" name="note" rows="10" cols="10"></textarea><br/>
</body>
</html>


jquery.form_util.js:

/**表单元素回写工具
 * wumingkun 2014-08-19
 */
var FormUtil={
		//值回写方法
		set:function(obj){
			var attr;
			for(attr in obj){
				var element=$("#"+attr)[0];
				var nodeName=element.nodeName;
				if(nodeName=="INPUT"){
					FormUtil.judgeType($(element).attr("type"),attr,obj[attr]);
				}else if(nodeName=="SELECT"){
					FormUtil.setSelect(attr,obj[attr]);
				}else if(nodeName=="TEXTAREA"){
					FormUtil.setValue(attr,obj[attr]);
				}
			}
		},
		//设置文本框 文本域 密码框 隐藏框
		setValue:function(key,value){
			$("#"+key).val(value);
		},
		//设置下拉框
		setSelect:function(key,value){
			$("#"+key+" option").each(function(){
				if(this.value==value){
					$(this).attr("selected","selected");
				}
			});
		},
		//设置radio
		setRadio:function(key,value){
			$(":radio[name=‘"+key+"‘]").attr("checked",false);
			$(":radio[value=‘"+value+"‘]").attr("checked",true);
		},
		//设置checkbox
		setCheckbox:function(key,value,isDefault){
			$(":checkbox[name=‘"+key+"‘]").attr("checked",false);
			if(isDefault){
				var vs=value.split("");
				for(var i=vs.length-1;i>=0;i--){
					if(vs[i]=="1"){
						$(":checkbox[name=‘"+key+"‘]").filter(":eq("+(vs.length-1-i)+")").attr("checked",true);
					}
				}
			}else {
				
			}
		},
		//input类型推断
		judgeType:function(type,key,value){
			if(type=="text"||type=="password"||type=="hidden"){
				FormUtil.setValue(key,value);
			}else if(type=="radio"){
				FormUtil.setRadio(key,value);
			}else if(type=="checkbox"){
				FormUtil.setCheckbox(key,value,true);
			}
		}
};



以上是关于基于JQuery实现表单元素值的回写的主要内容,如果未能解决你的问题,请参考以下文章

jquery获取元素值的方法(常见的表单元素)

如何从 Jquery 对话框表单提交中调用父页面上的回发?

使用jquery实现的清空表单元素代码实例

关于SpringMVC的几件小事

jQuery获取和设置表单元素的方法

根据asp.net中的值隐藏元素?