在日常开发的过程中,难免会用到form表单,我们需要获取表单的数据保存到数据库,或者拿到后台的一串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获取form表单内容以及绑定数据到form表单的全部内容,希望对大家的学习有所帮助。
本文地址:https://www.stayed.cn/item/18108
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我