似乎这应该是一些内置的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()); });
我缺少什么?
首先给你的表单一个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()从表单中提取相关数据。它也假设你关心的选择是形式中的第一个。
为了将来参考,jQuery docs非常,非常好。