jquery提交时把表单转成json,调用serializeArray()返回空

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery提交时把表单转成json,调用serializeArray()返回空相关的知识,希望对你有一定的参考价值。

<form id="form" class="form-signin" role="form">
<h2 class="form-signin-heading">Please sign in</h2>
<input type="email" class="form-control" placeholder="Email address" required autofocus value="hehe@qq.com"/>
<input type="password" class="form-control" placeholder="Password" required />
<div class="checkbox">
<label>
<input type="checkbox" value="remember-me"/> Remember me
</label>
</div>
<button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
</form>
用的jquery2.1.2,bootstrap.min.js, 和bootstrap的css,submit的代码是
$().ready(function()
$("form").submit( function ()
alert($(this).serializeArray());
);
);
,各位前辈帮忙看看,先谢谢了。

参考技术A 给input设置name属性,就可以序列化!追问

写上name就行了。谢谢。
我这还有个问题,ajax提交表单后,后台处理完,是不能跳转的,请问如果我想跳转到显示数据的页面,是在回调函数里面写吗?这个怎么写呢,直接location=xxx.jsp ?
(直接用表单的action是能跳转的)
谢谢。

追答

你前台ajax的时候,回调判断是否请求成功,然后window.location.href="网址"跳转

追问

这些jsp都在WEB-INF下面啊,不能直接访问

追答

你的相关目录路径是要通过全局变量来定义的,前端只需要获取这个变量值就可以实现路径的跳转。不然很麻烦!

参考技术B 你的表单元素(input、select、checkbox、radio之类)都没有写name属性,序列化的时候怎么知道要以什么名字向服务器提交??你服务器程序怎么知道以什么参数名去取值??追问

写上name就行了。谢谢。
我这还有个问题,ajax提交表单后,后台处理完,是不能跳转的,请问如果我想跳转到显示数据的页面,是在回调函数里面写吗?这个怎么写呢,直接location=xxx.jsp ?
(直接用表单的action是能跳转的)
谢谢。

追答

当然在回调函数里面做啊。回调函数才知道你的AJAX请求有没有处理成功,还有服务器返回的响应是什么。那按照需求,要“后台处理完再跳转”,所以当然要在回调函数里面写了。你可以在回调函数里面设置window.location.href=指定的URL,也可以在回调函数里面通过js脚本提交form到自身来实现跳转等等,要转去的URL可以是服务器响应中带回来的,也可以是脚本中写死的,这些都按实际需求灵活写不就好了。

参考技术C 你这个FROM没有写提交页面地址,是默认提交到当前页面的

怎么使用jquery提交表单

前面表单都可以验证,最后submit方法不对吗,应该怎么写来提交表单。

jquery提交表单有两种情况:
1:jquery只做提交用。
$("form").submit();

这个的表单提交到什么地方的是更具form元素里面的action属性去定义的。

2:jquery用ajax提交数据。
$.ajax(
type:"post",
url:"xxx.php", // 这里是提交到什么地方的url
data:, // 这里把表单里面的数据放在这里传到后台
dataType:"json",
success:function(res)
// 调用回调函数

);
参考技术A   你好,不是按钮的提交而是表单的提交,按钮是没有提交方法的
   $('form').submit();
  也可以给form添加class和id,然后$(.class)或者$(#id).submit()都可以提交追问

$("#regist") 这个是表单的id,求指点啊

追答

表单id的话是可以提交的,看有没有执行最后的else,看你的表单怎么写的

追问

追答

表单是没有问题,你看下代码是否执行了最后的else ,应该是可以提交的

追问

最后的else执行了,但是表单没有提交

追答

有出现什么错误信息吗?这个id是否有重复呢

追问

没有重复呢,我把button改成了submit,if里面加了return false,暂时解决了这个问题

本回答被提问者和网友采纳

以上是关于jquery提交时把表单转成json,调用serializeArray()返回空的主要内容,如果未能解决你的问题,请参考以下文章

JQuery将form表单值转换成json字符串函数

玩转web之json---将表单通过serialize()方法获取的值转成json

把表单转成json,并且name为key,value为值

如何使用 jQuery AJAX 和 JSON 通过 Bootbox 确认表单提交

在 Struts 2 + jQuery + json 中按回车键停止提交表单

javascript json对象转成数组