JSON values are null



我相信这真的很简单。。。

我有下面的代码。。。

<script>
function postUser() {
    var user = $('span').serialize();
    $.post('userManagement/setUser', user);
}
</script>

<span>
  Username : <input type="text" name = "userName"><br />
  First name: <input type="text" name="firstName" /><br />
  Last name: <input type="text" name="lastName" /><br />
  Password: <input type="text" name="password" /><br />
  <button onclick="postUser()">Submit</button>
</span>

没有发布任何内容(根据firebug的说法,POST中实际上是空的)。

如何张贴此表格?我想使用jQuery,这样我就可以更好地使用它,而不仅仅是把它放在HTML中。我的控制器需要一个JSON对象,它只是我的用户实体,具有上面的字段以及一个用于"访问"的整数。

我使用SpringMVC作为控制器。

谢谢,

试试这个:

var user = $('form').serialize();

然后:

<form action="#" method="post">
  Username : <input type="text" name = "userName"><br />
  First name: <input type="text" name="firstName" /><br />
  Last name: <input type="text" name="lastName" /><br />
  Password: <input type="text" name="password" /><br />
  <button type="button" onclick="postUser()">Submit</button>
</form>

serialize()用于序列化表单元素,而不是span标记,请尝试以下操作:

将一组表单元素编码为字符串以供提交。

var user = $('span input').serialize(); // or $('form')

您遇到的问题是由于您误解了serialize()函数和正确的HTML结构。

.serialize()方法创建一个标准URL编码的文本字符串符号它对表示一组表单的jQuery对象进行操作元素。

尝试以下操作:

var user = $('span input').serialize();

这将定位跨度元素中的所有输入元素,并将数据分配给user变量。

演示:http://jsfiddle.net/qSr7k/

最新更新