일상적인 개발 과정에서 양식 양식을 사용하는 것은 불가피합니다. 양식 데이터를 가져와 데이터베이스에 저장하거나 백그라운드에서 json 데이터 문자열을 가져와 양식에 바인딩해야 합니다. form, 여기에는 사용하기 매우 간단한 jquery 기반 formHelp 플러그인이 있습니다.
양식 데이터 가져오기: $("#formid").serializeJson();
양식에 데이터 바인딩: $("#formid").setForm(json);
jquery.formHelp.js 플러그인
/** * 将form里面的内容序列化成json * 相同的checkbox用分号拼接起来 * @param {dom} 指定的选择器 * @param {obj} 需要拼接在后面的json对象 * @method serializeJson * */ $.fn.serializeJson=function(otherString){ var serializeObj={}, array=this.serializeArray(); $(array).each(function(){ if(serializeObj[this.name]){ serializeObj[this.name]+=';'+this.value; }else{ serializeObj[this.name]=this.value; } }); if(otherString!=undefined){ var otherArray = otherString.split(';'); $(otherArray).each(function(){ var otherSplitArray = this.split(':'); serializeObj[otherSplitArray[0]]=otherSplitArray[1]; }); } return serializeObj; }; /** * 将josn对象赋值给form * @param {dom} 指定的选择器 * @param {obj} 需要给form赋值的json对象 * @method serializeJson * */ $.fn.setForm = function(jsonValue){ var obj = this; $.each(jsonValue,function(name,ival){ var $oinput = obj.find("input[name="+name+"]"); if($oinput.attr("type")=="checkbox"){ if(ival !== null){ var checkboxObj = $("[name="+name+"]"); var checkArray = ival.split(";"); for(var i=0;i<checkboxObj.length;i++){ for(var j=0;j<checkArray.length;j++){ if(checkboxObj[i].value == checkArray[j]){ checkboxObj[i].click(); } } } } } else if($oinput.attr("type")=="radio"){ $oinput.each(function(){ var radioObj = $("[name="+name+"]"); for(var i=0;i<radioObj.length;i++){ if(radioObj[i].value == ival){ radioObj[i].click(); } } }); } else if($oinput.attr("type")=="textarea"){ obj.find("[name="+name+"]").html(ival); } else{ obj.find("[name="+name+"]").val(ival); } }) }
html 테스트 코드
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>jQueryFormHelp练习</title> <script src="http://libs.baidu.com/jquery/2.0.0/jquery.js"></script> <script src="jquery.formHelp.js"></script> <script type="text/javascript"> $(function () { $("#form").setForm({a: '张三家的附近可考虑将', b: '王五', c: '王五', d: 'nishi yaldjlkfjal ',e:7,f:'8;10',i:'王'}); }); function submitForm(){ console.log($("#form").serializeJson('id:12;name:13;')); } </script> </head> <body> <form id="form"> <div><input type="text" name="a" /></div> <div><input type="text" name="b" id="b" /></div> <div><input type="hidden" name="c" id="c" /></div> <div> <textarea name="d" rows="8" cols="40"></textarea> <input type="checkbox" name="f" value="10"/> </div> <div><select name="e"> <option value="5" selected="selected">5</option> <option value="6">6</option> <option value="7">7</option> </select></div> <div> <input type="checkbox" name="f" value="8" /> <input type="checkbox" name="f" value="9"/> </div> <div> <input name="i" type="radio" value="王" />王 <input name="i" type="radio" value="小" />小 </div> <div> <input type="button" name="g" value="Submit" id="g" onclick="submitForm()"/> </div> </form> </body> </html>
위 내용은 양식 양식 내용을 가져와서 양식 양식에 데이터를 바인딩하는 jquery의 전체 내용입니다. 모든 분들의 학습에 도움이 되기를 바랍니다.