使用 jQuery 创建帖子表单并提交它的最短方法是啥? [复制]

Posted

技术标签:

【中文标题】使用 jQuery 创建帖子表单并提交它的最短方法是啥? [复制]【英文标题】:What is the shortest way to create post form and submit it using jQuery? [duplicate]使用 jQuery 创建帖子表单并提交它的最短方法是什么? [复制] 【发布时间】:2012-08-22 16:42:15 【问题描述】:

我有一个带有data-urldata-parameter 属性的按钮,需要将其发布到控制器。问题是,该控制器将返回一个重定向,所以 $.post 在这里没有什么帮助,我正在考虑动态创建表单并提交它。 我认为这是很常见的任务,但我在 jQuery 上找不到任何快捷方式来执行此操作,最短/最好的方法是什么?

【问题讨论】:

如果控制器返回一个重定向,如果你使用 ajax 发布它,那么对于你的表单页面并不重要,我认为页面不会重新加载,你只会得到不同的数据 ***.com/questions/133925/… @JeroenMoons - 这里不需要 ajax,我只需要在浏览器上发布位置更改的数据的解决方案,就像提交常规发布表单一样。 @n***s - 你提到的问题中有 jquery 版本,但 cmets 说它有错误。 @Giedrius 想要使用 jQuery 而不是提供的本机 js 答案(已接受的答案)的任何具体原因?将接受的答案转换为使用 jQuery 很简单,但它只真正为您节省了几个字符,并且所有内容都应该跨浏览器兼容。需要帮助吗? 【参考方案1】:

来源:https://***.com/a/133997/803925

修改为使用jQuery:

function post_to_url(path, params, method) 
    method = method || "post"; // Set method to post by default, if not specified.

    var $form = $("<form>")
        .attr("method", method)
        .attr("action", path);

    for(var key in params) 
        if(params.hasOwnProperty(key)) 
            var $hiddenField = $("<input type='hidden' >")
                .attr("name", key)
                .val( params[key] );

            $form.append( $hiddenField );
         
    

    $('body').append( $form );
    $form.submit();

【讨论】:

非常感谢。这是我一直在寻找的最佳解决方案。这个答案来自 2012 OMG。现在我可以将我的代码更改为 jquery。 ***.com/a/67716628/1901693

以上是关于使用 jQuery 创建帖子表单并提交它的最短方法是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

使用 Ajax jQuery 提交 Django 表单的简单方法

Jquery - 事件对新创建的元素不起作用

动态创建并提交表单

使用 jQuery 模拟选择并提交表单,无需选择

javascript jQuery的动态创建形成表单并提交

Asp.Net MVC 5 Jquery 验证不适用于带有提交事件的 ajax 帖子,显示为有效表单