この記事では主にjQueryでフォームデータをJSONオブジェクトにシリアル化する実装方法をサンプルコードを通して詳しく紹介していますので、必要な方は参考にしてください。 ## jqueryが提供するserializeメソッドが実装可能です。
$("#searchForm").serialize();
しかし、出力情報を観察すると、serialize() メソッドがフォーム内のデータを http リクエスト形式の文字列に結合していることがわかります。
serialize は実際に一般的な送信データを解決できます。ただし、必要なのは文字列ではなくオブジェクト オブジェクトである場合があります (たとえば、jqgrid のリロード時にクエリ条件パラメータを設定する場合、オブジェクト オブジェクトが必要です)。
メソッドは次のとおりです:
(function(window, $) { $.fn.serializeJson = function() { var serializeObj = {}; var array = this.serializeArray(); var str = this.serialize(); $(array).each( function() { if (serializeObj[this.name]) { if ($.isArray(serializeObj[this.name])) { serializeObj[this.name].push(this.value); } else { serializeObj[this.name] = [ serializeObj[this.name], this.value ]; } } else { serializeObj[this.name] = this.value; } }); return serializeObj; }; })(window, jQuery);
Call:
console.info($("#searchForm").serializeJson());
概要 以上がフォームデータをJSONオブジェクトにシリアライズするjQueryの実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。<form id="myform">
<table>
<tr>
<td>姓名:</td>
<td> <input type="text" name="name" /> </td>
</tr>
<tr>
<td>性别:</td>
<td>
<input type="radio" name="sex" value="1"> 男
<input type="radio" name="sex" value="0"> 女
</td>
</tr>
<tr>
<td>年龄:</td>
<td>
<select name="age">
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
</select>
</td>
</tr>
<tr>
<td>爱好</td>
<td>
<input type="checkbox" value="basketball" name="hobby">篮球
<input type="checkbox" value="volleyball" name="hobby">排球
<input type="checkbox" value="football" name="hobby">足球
<input type="checkbox" value="earth" name="hobby">地球
</td>
</tr>
<tr>
<td colspan="2">
<input type="button" id="ajaxBtn" value="提交" />
</td>
</tr>
</table>
</form>
<script type="text/javascript">
$(function() {
$("#ajaxBtn").click(function() {
var params = $("#myform").serializeObject(); //将表单序列化为JSON对象
console.info(params);
})
})
$.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;
}
</script>
上記はエディターによるものです ご紹介したフォームデータをjQueryでJSONオブジェクトにシリアライズする実装方法、ご参考になれば幸いです!