Javascript 通过jquery模拟提交按钮并收集所有html输入值
我有以下表格:Javascript 通过jquery模拟提交按钮并收集所有html输入值,javascript,jquery,html,ajax,django,Javascript,Jquery,Html,Ajax,Django,我有以下表格: <form method="post"> <div class="summary"> <div class="trip"> <select name="State" class="state"> <option selected disabled>Choose a State</option> <option value="1">Califo
<form method="post">
<div class="summary">
<div class="trip">
<select name="State" class="state">
<option selected disabled>Choose a State</option>
<option value="1">California</option>
<option value="2">New York</option>
</select>
<select name="State" class="state">
<option selected disabled>Choose a State</option>
<option value="1">California</option>
<option value="2">New York</option>
</select>
...
Repeated an unknown number of times.
...
<br><br>
</div>
</div>
<input type="button" id="submit" value="calculate">
</form>
选择一个州
加利福尼亚
纽约
选择一个州
加利福尼亚
纽约
...
重复次数未知。
...
我想使用ajax调用将calculate按钮模拟为jquery的submit按钮
在Django/html中的常规提交中,post请求将收集并向服务器发送“状态”值列表(假设有多个选择,名称为“状态”)和其他输入值
jquery中是否有类似的函数,用于收集html中的所有输入值,并将其作为ajax调用的参数包含?jquery有一个
序列化
函数
var postData =$('form').serialize();
这将把表单序列化为将发布到服务器的相同字符串
选择一个州
加利福尼亚
纽约
选择一个州
加利福尼亚
纽约
... 重复了未知的次数。。。
$(“#提交”)。单击(函数(){
变量数据=$(“形式”).serialize()
$(“#数据”).val(数据);
返回false;
});
你可以这样做
将按钮类型更改为“提交”
处理表单的提交事件并序列化表单数据
<input type="submit" id="submit" value="calculate">
$( "form" ).on( "submit", function( event ) {
event.preventDefault();
console.log( $( this ).serialize() );
});
$(“表格”)。在“提交”上,功能(事件){
event.preventDefault();
log($(this.serialize());
});
你是说像序列化一样?您可以使用序列化功能。如果多个
元素在
中具有相同的名称
属性值,那么预期的结果是什么?Django post(也可能是普通的)将生成{“State:[u'California',u'New York']}。有可能生成这样的数组吗?第一个示例显示了常规post的外观。接收的服务器实际上会将重复的名称值组合在一个逗号分隔的字符串中。有几个不同的示例可以使用map函数甚至完整的jQuery插件序列化JSON数据,但它们都会序列化一点不同的,同样的,每个人都希望他们的JSON以不同的形式序列化,所以我会测试其中的一些,看看哪一个提供了你想要的格式。明白了。谢谢!我可以问你为什么在提交结束时返回false吗?我更新了JSON,让它像你一样映射到你想要的地方,但你很可能会遇到其他东西您希望以不同的方式映射。返回false将阻止表单提交。