<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">form表单提交时,可能需要转化为不同的形式来作为参数请求接口。本文总结了将form表单的值并转化为字符串、JSONArray或JSONObject的方法。</span>
1. form转化为字符串
<pre name="code" class="html"><pre name="code" class="html">var a=$('form').serialize();
alert(a);
该方法将form值转化为 key=value&key=value 的形式。
2. form转化为JSONArray
var a=$('form').serializeArray();
var str=JSON.stringify(a);
alert(str);
3. form转化为JSONObject
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"></span><pre name="code" class="html"><span style="white-space:pre"> </span>function submit(){
var a=$('form').serializeObject() ;
var str=JSON.stringify(a);
console.info(str);
}
$.fn.serializeObject = function() {
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [ o[this.name] ];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
}
附:form表单取不到input textarea值的解决办法
以上方法均可获取到input textarea的值,如果alert为空字符串,请检查input textarea的name属性是否已赋值,如没有name属性,则form取不到该文本框的值。