首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >截取表单POST字符串并通过AJAX发送

截取表单POST字符串并通过AJAX发送
EN

Stack Overflow用户
提问于 2012-08-30 09:47:22
回答 3查看 8.7K关注 0票数 12

是否可以截取表单的POST字符串并通过AJAX发送?我可以使用$('form').submit()来拦截POST事件,但我不知道从哪里可以获得POST字符串。我可以从表单的输入中重新生成字符串,但这似乎值得怀疑。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-30 09:49:54

代码语言:javascript
复制
// capture submit
$('form').submit(function() {
     var $theForm = $(this);

     // send xhr request
     $.ajax({
         type: $theForm.attr('method'),
         url: $theForm.attr('action'),
         data: $theForm.serialize(),
         success: function(data) {
             console.log('Yay! Form sent.');
         }
     });

     // prevent submitting again
     return false;
});

注意,正如Phil在他的评论中所说的那样,.serialize()没有包含submit按钮。如果您还需要值的提交按钮,您将不得不手动添加它。

票数 23
EN

Stack Overflow用户

发布于 2012-08-30 09:51:27

当然你可以这样做-你阻止你的表单像往常一样提交,你通过jQuery获取它的数据并执行一个POST

代码语言:javascript
复制
$(form).submit(function(event){

    // prevents default behaviour, i.e. reloading the page
    event.preventDefault();

    $.post(

        $(this).attr('action'), // the form's action
        $(this).serializeArray(),   // the form data serialized
        function(data)
        {

            // what you are supposed to do with POST response from server

        }

    )

});
票数 3
EN

Stack Overflow用户

发布于 2012-08-30 09:50:00

使用.serialize(),它会将一组表单元素编码为字符串进行提交。

代码语言:javascript
复制
$('form').serialize() 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12188847

复制
相关文章

相似问题

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