我需要在表单内实现表单-可以选择仅将来自表单的2个输入发布到服务器。我以为解决方案是通过$.post()
方法发送它们,但我不知道如何正确准备请求。
html:
<form>
<input type="text" id="1">
<input type="text" id="2">
<div>
<input type="text" id="3">
<input type="text" id="4">
<button type="submit" id="part_submit">
Parially submit
</button>
</div>
<input type="text" id="5">
<button type="submit" id="submit">
Submit
</button>
</form>
js:
$("#part_submit").on("click", (e) => {
e.preventDefault();
let value1 = $("#3").val();
let value2 = $("#4").val();
let data = {"value1" : value1, "value2": value2};
let sdata = data.serialize();
$.post("my_server_url", sdata, function(data){
console.log(data);
});
})
结果:
TypeError: data.serialize is not a function"
我意识到通常我想发布一个表单,但我必须这样做:$(form).serialize()
,虽然可以,但是我不能将表单嵌套到表单中。那么该怎么做呢?
答案 0 :(得分:-1)
您必须调用.val()
函数以获取字段中的值。另外,您仅在表单或表单字段上使用.serialize()
,只需将对象传递到$.post()
$("#part_submit").on("click", (e) => {
e.preventDefault();
let value1 = $("#3").val();
let value2 = $("#4").val();
let data = {"value1" : value1, "value2": value2};
$.post("my_server_url", data, function(data){
console.log(data);
});
})