尝试在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确实提交加重定向。
答案 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()