在jquery中提交表单 - 不在firefox上工作

时间:2012-01-05 14:40:35

标签: php jquery form-submit

尝试在javascript调用中创建和提交表单。此代码在Chrome上运行良好,但在Firefox和IE上则不行。我首先从Ajax调用(JSON)获取值,然后将其作为表单

提交
$('<form name="acsform" action="' + JSONobject.formacsurl +'" method="POST">' + 
  '<input type="hidden" name="PaReq" value="' +JSONobject.formpareq + '">' +
  '<input type="hidden" name="TermUrl" value="'+ JSONobject.formtermUrl +'">' + 
  '<input type="hidden" name="MD" value="'+ JSONobject.formmd +'">' +
  '</form>').submit();

有什么想法吗?

只是添加...当我在提交下面的某行文本提醒时,我会在屏幕上显示警告框。浏览器可能看起来很好(甚至可能提交表单),但我没有被重定向到表单action地址。我也没有得到任何JS错误。

再一次,它仅在Firefox和IE上失败,Chrome确实提交加重定向。

3 个答案:

答案 0 :(得分:3)

试用此代码:

$(document).ready(function()
{
    /*
    *    IF IS APPEND, USE A ID OR CLASS
    */
    $('#X').append('<form id="myNewForm" class="myNewForm" method="post" action="">...</form>');
    $('#myNewForm').submit();

    //OR USE CLASS NAME
    $('form.myNewForm').submit();

    /*
    *    IF NOT APPEND, USE A ID OR CLASS
    */
    //USEA ID
    $('#myForm').submit();

    //USE A CLASS NAME
    $('form.my-form').submit();

    //USE A ELEMENT( ALL )
    $('form').submit();

});

再见!

答案 1 :(得分:0)

坦率地说,我不确定是否可以通过评论来阻止stackoverflow上的问题,以及是否可以通过回答您自己的问题来解决问题,但不是真的想创建一个新的并且复制这个问题的内容< / p>

我有这个代码,基于Olaf的解决方案

    $('#basic-modal-content').append('<form id="acsform" name="acsform" action="' + JSONobject.formacsurl +'" method="POST">' + 
    '<input type="hidden" name="PaReq" value="' +JSONobject.formpareq + '">' +
    '<input type="hidden" name="TermUrl" value="'+ JSONobject.formtermUrl +'">' + 
    '<input type="hidden" name="MD" value="'+ JSONobject.formmd +'">' +
    '</form>');
    $('#acsform').submit();

这在IE,Firefox,Opera和Chrome上运行良好。但是今天,我们收到了一位客户的报告,说这个过程不适用于他的ipad。遗憾的是我无法获取他在ipad上使用的浏览器的信息(我自己没有自己检查的ipad)但似乎这段代码不起作用。日志中的最后一个操作是创建JSON对象的ajax操作,并且在接收到JSON之后触发上面的js。那是我的猜测。 对于这个表单提交在ipad默认浏览器上是一个问题(无论那个浏览器是什么),你对此有什么了解吗

答案 2 :(得分:0)

使用带有ID的原生提交()。

$('<form/>', {name:"acsform", id:"acsform", method:"POST", action: JSONobject.formacsurl})
.append(
  $('<input/>', {type:"hidden", name:"PaReq", value: JSONobject.formpareq}),
  $('<input/>', {type:"hidden", name:"TermUrl", value: JSONobject.formtermUrl}),
  $('<input/>', {type:"hidden", name:"MD", value: JSONobject.formmd})
).appendTo(document.body)
$("form#acsform")[0].submit()