項目主頁
https://github.com/marioizquierdo/jquery.serializeJSON
效果圖
加載使用
<script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="jquery.serializejson.js"></script>
form表單頁面代碼
<form id="formDemo" class="layui-form"> <table class="layui-table" lay-even> <colgroup> <col width="100"> <col width="200"> <col> </colgroup> <tbody> <tr> <th>用戶名</th> <td id="userName"> <div class="layui-form-item layui-input-inline"> <input tyep="text" name="userName" class="layui-input"> </div> </td> </tr> <tr> <th>登錄密碼</th> <td id="password"> <div class="layui-form-item layui-input-inline"> <input tyep="text" name="password" class="layui-input"> </div> </td> </tr> <tr> <th>用戶權限</th> <td id="role"> <div class="layui-form-item layui-input-inline"> <input type="text" name="role" class="layui-input" readOnly="true" value="管理員"> </div> </td> </tr> <tr> <th>手機號</th> <td id="phone"> <div class="layui-form-item layui-input-inline"> <input tyep="text" name="phone" class="layui-input"> </div> </td> </tr> <tr> <th>用戶備注</th> <td id="nickName"> <div class="layui-form-item layui-input-inline"> <input tyep="text" name="nickName" class="layui-input"> </div> </td> </tr> </tbody> </table> </form>
序列化
<script type="text/javascript"> function getUser(){ console.log($('#formDemo').serializeJSON()); console.log(JSON.stringify($('#formDemo').serializeJSON())); return JSON.stringify($('#formDemo').serializeJSON()); } </script>
$('#formDemo').serializeJSON()返回的是一個Object體
{userName: "test", password: "test", role: "管理員", phone: "18888888866", nickName: "測試"}
JSON.stringify($('#formDemo').serializeJSON())返回的是JSON字符串
{"userName":"test","password":"test","role":"管理員","phone":"18888888866","nickName":"測試"}
使用Ajax傳遞給后台使用@RequestBody進行接收
<script type="text/javascript"> function addUser(){ var data = getUser(); $.ajax({ type: "POST", url: "${ctx}/auth/user/create", data: data, dataType: "json", contentType:"application/json", success: function(data){ alert(data.message); if(data.code==0){ layer.closeAll(); window.location.href="${ctx}/auth/users"; } } }); } </script>
若要在JS中獲取鍵值對中的值可以進行如下處理
<script type="text/javascript"> var data = getUser(); var obj = eval("("+data+")"); alert(obj.userName); </script>