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

标签: jquery


【解决方案1】:

来源:https://stackoverflow.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。 stackoverflow.com/a/67716628/1901693
猜你喜欢
  • 1970-01-01
  • 2018-08-24
  • 2018-05-12
  • 1970-01-01
  • 1970-01-01
  • 2012-10-22
  • 2014-03-31
  • 1970-01-01
  • 2020-11-07
相关资源
最近更新 更多