首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用AJAX和jQuery提交表单

使用AJAX和jQuery提交表单
EN

Stack Overflow用户
提问于 2009-01-08 17:15:32
回答 3查看 235.7K关注 0票数 59

看起来这应该是jQuery内置的东西,不需要几行代码,但是我找不到“简单”的解决方案。假设我有一个HTML表单:

代码语言:javascript
复制
<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提交表单以更新数据库。我认为有一些方法可以在不手动创建值/属性的情况下完成以下操作,只需将它们全部发送,如下所示:

代码语言:javascript
复制
$("select").change(function(){
    $.get("page.html?" + serializeForm());
});

我遗漏了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-05-03 15:15:59

这就是最终有效的方法。

代码语言:javascript
复制
$("select").change(function(){
    $.get("/page.html?" + $(this).parent("form").find(":input").serialize()); 
});
票数 14
EN

Stack Overflow用户

发布于 2009-01-08 17:28:18

首先给表单一个id属性,然后使用如下代码:

代码语言:javascript
复制
$(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非常非常好。

票数 146
EN

Stack Overflow用户

发布于 2009-01-08 17:18:45

有一个很好的form plugin,它允许您异步发送一个HTML表单。

代码语言:javascript
复制
$(document).ready(function() { 
    $('#myForm1').ajaxForm(); 
});

代码语言:javascript
复制
$("select").change(function(){
    $('#myForm1').ajaxSubmit();
});

立即提交表单

票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/425095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档