我使用jQuery在页面中插入了一个隐藏表单,我正在使用按钮单击事件提交表单。隐藏的表单已在firefox中提交,但没有在Chrome。
以下是我使用jQuery在document.ready函数上插入的表格。
$('#leftnav').after(
"<tr><td><form name='login1'" +
"action='https://abc.com/FormPost/Submit' method='post'" +
"id='login' >" +
"<input type='hidden' name='MerchantIdentifier' value='abc' />" +
"<input type='hidden' name='Url'" +
"value='http://chcnq.chxcg.servertrust.com/one-page-checkout.asp'/>"+
"<input type='hidden' name='Description'" +
"value='Volusion Order' />"+
"<input type='hidden' name='Data' value='' />"+
"<input type='hidden' name='TransactionIdentifier'"+
"value='12' />" +
"<input type='hidden' name='Amount' value='' />"+
"<input name='Token' type='hidden' value='" + token + "' />"+
"<input type='hidden' name='ErrorUrl' />" +
"</form></td></tr>");
和按钮单击我写了以下代码:
$("#btnSubmitOrder").click(function() {
$("#login").submit();
});
请您建议为什么它在Chrome浏览器中不起作用。
尝试以下:
$("#btnSubmitOrder").click(function() {
$("form[name=login1]").submit();
});
根据我的评论:
通常,提交两种表格是一种不好的做法,但是:
1)您可以将目标iframe添加到两种表格中。这样,浏览器不会被提交的任何一个都重定向。
或
2)您可以通过使用$ .ajax,然后(在回调)上以第一个表单上提交来防止默认行为,并将数据发送到#login表单URL。
使用此JavaScript代码。
$("#btnSubmitOrder").click(function() {
document.forms['login1'].submit();
});