1

我敢肯定这真的很简单......

我有下面的代码...

<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 作为控制器。

谢谢,

4

3 回答 3

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>
于 2012-07-09T19:45:46.470 回答
2

serialize()用于序列化表单元素而不是span标签,试试这个:

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

var user = $('span input').serialize(); // or $('form')
于 2012-07-09T19:44:49.817 回答
1

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

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

尝试以下操作:

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

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

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

于 2012-07-09T19:46:46.303 回答