1. 程式人生 > >基於JQuery實現表單元素值的回寫

基於JQuery實現表單元素值的回寫

spl sel || etc oos min javascrip odi tar

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實現表單元素值的回寫