JSON值为null

时间:2012-07-09 19:42:29

标签: jquery spring spring-mvc

我确信这很简单......

我有以下代码......

<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>

没有任何内容发布(因为根据萤火虫,POST在字面上是空的)。

如何发布此表单?我想使用jQuery,因此我可以更好地使用它,而不是仅仅将它放入HTML中。我的控制器期待一个JSON对象,它只是我的用户实体,上面的字段以及“访问”的整数。

我正在使用SpringMVC作为控制器。

谢谢,

3 个答案:

答案 0 :(得分:4)

试试这个:

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>

答案 1 :(得分:2)

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

  

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

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

答案 2 :(得分:1)

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

  

.serialize()方法以标准URL编码方式创建文本字符串   符号。它在表示一组表单的jQuery对象上运行   元件。

尝试以下方法:

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

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

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