- 本代码展示了通过jQuery遍历表单控件,获得key-value拼成json串并最终转成json对象。

<form id='form1'>
框框:<input type="text" class='fc' id="hida"/><br>
交通:<input type="checkbox" name="vehicle" value="Bike">bike <input type="checkbox" name="vehicle" value="Car">car <br>
性别:<input type="radio" name="sex" value="male" checked>Male <input type="radio" name="sex" value="female">Female<br>
备注:<textarea id='MyArea'>asf</textarea><br>
学历:<select name="edulevel" id='edu'>
<option value="0">小学</option>
<option value="1">初中</option>
</select><br>
<input type='button' id='btn2' value='提交表单'/>
</form>
<script>
$(function(){
$('#btn2').click(function(){
console.log( GetWebControls('form1'));
});
});
function GetWebControls(formId) {
var str=[];
var love=[];
$('#'+formId).find('input,select,textarea').each(function(i,v){
var id=typeof($(this).attr('id'))=='undefined'?$(this).attr('name'):$(this).attr('id');
var val=$(this).val();
var type = $(this).attr('type');
switch (type) {
case "button":
case "submit":
break;
case "checkbox":
if($(this).is(':checked'))
love[love.length] =val;
break;
case "radio":
if($(this).is(':checked'))
str[str.length] ='"'+id+'":"'+val+'"';
break;
default:
str[str.length] ='"'+id+'":"'+$.trim(val)+'"';
break;
}
});
var checkboxPart='"vehicle":["'+love.join('","')+'"]';
return JSON.parse('{'+str.concat(checkboxPart)+'}');
}
function getAjax(url, parm, callBack) {
$.ajax({
type: 'post',
dataType: "text",
url: url,
data: parm,
cache: false,
async: false,
success: function (msg) {
callBack(msg);
}
});
}
</script>