看起来这应该是jQuery内置的东西,不需要几行代码,但是我找不到“简单”的解决方案。假设我有一个HTML表单:
<form method="get" action="page.html">
<input type="hidden" name="field1" value="value1" />
<input type="hidden" name="field2" value="value2" />
<select name="status">
<option value=""></option>
<option value="good">Good</option>
<option value="bad">Bad</option>
</select>
</form>
当有人更改选择字段时,我希望使用ajax提交表单以更新数据库。我认为有一些方法可以在不手动创建值/属性的情况下完成以下操作,只需将它们全部发送,如下所示:
$("select").change(function(){
$.get("page.html?" + serializeForm());
});
我遗漏了什么?
发布于 2009-05-03 15:15:59
这就是最终有效的方法。
$("select").change(function(){
$.get("/page.html?" + $(this).parent("form").find(":input").serialize());
});
发布于 2009-01-08 17:28:18
首先给表单一个id
属性,然后使用如下代码:
$(document).ready( function() {
var form = $('#my_awesome_form');
form.find('select:first').change( function() {
$.ajax( {
type: "POST",
url: form.attr( 'action' ),
data: form.serialize(),
success: function( response ) {
console.log( response );
}
} );
} );
} );
因此,此代码使用.serialize()
从表单中提取相关数据。它还假设您关心的select是表单中的第一个。
对于将来的参考,jQuery docs非常非常好。
发布于 2009-01-08 17:18:45
有一个很好的form plugin,它允许您异步发送一个HTML表单。
$(document).ready(function() {
$('#myForm1').ajaxForm();
});
或
$("select").change(function(){
$('#myForm1').ajaxSubmit();
});
立即提交表单
https://stackoverflow.com/questions/425095
复制相似问题