我确信这很简单......
我有以下代码......
<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作为控制器。
谢谢,
答案 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
变量。