【发布时间】:2014-04-17 04:43:12
【问题描述】:
我在一个页面中有两个表单。而且我需要通过单击提交表单。
我使用以下代码:
表格:
<?php echo $this->Form->create('Payment', array('id' => 'addToDB', 'type' => 'post')); ?>
<?php echo $this->Form->input('merID'); ?>
<?php echo $this->Form->input('card_number', array('label'=>false, 'min'=>16, 'type'=>'select')); ?>
<?php echo $this->Form->input('name_on_card', array('label'=>false, 'type'=>'select')); ?>
<?php echo $this->Form->input('security_code', array('label'=>false, 'type'=>'select')); ?>
<?php $options = array
(
'label' => 'Submit',
'id' => 'submit',
'div' => array(
'class' => 'glass-pill',
)
);
?>
<?php echo $this->Form->end($options); ?>
<?php echo $this->Form->create('Payment', array('id' => 'paymentGateway', 'type' => 'post', 'url' => 'https://uat.pbbank.com/payment/dpayment.jsp')); ?>
<?php echo $this->Form->input('merID'); ?>
<?php echo $this->Form->input('card_number', array('label'=>false, 'min'=>16, 'type'=>'select')); ?>
<?php echo $this->Form->input('name_on_card', array('label'=>false, 'type'=>'select')); ?>
<?php echo $this->Form->input('security_code', array('label'=>false, 'type'=>'select')); ?>
<?php $options = array
(
'label' => 'Submit',
'id' => 'submit2',
'div' => array(
'class' => 'glass-pill',
)
);
?>
<?php echo $this->Form->end($options); ?>
java脚本:
$(document).ready(function () {
$("#submit2").click(function () {
$.post($("#addToDB").attr("action"), $("#addToDB").serialize(),
function () {
alert('Add to Database submitted');
});
$.post($("#paymentGateway").attr("action"), $("#addToDB").serialize(),
function () {
alert('Payment Gateway submitted');
});
});
});
在 chrome 上可以正常工作,但在 mozilla 上不行。 有人可以帮帮我吗。提前致谢。
【问题讨论】:
-
首先,您在第二个
$.post中使用$("#addToDB").serialize()而不是$("#paymentGateway").serialize()。您能否提供表单 HTML 和您遇到的错误? -
@Zudwa 我已经更新了我的问题。我没有收到任何错误。好像只提交了 1 个表单。
-
您正在尝试向另一个域发出 ajax 请求。由于安全原因,这受到限制。您可以使用 JSONP 请求来使其工作。请注意,您只能发出 GET 请求,而不能发出 POST。并且不要忘记防止在
.click()中单击默认事件,否则除了 ajax 调用之外,您的表单也会正常提交。您可以在此处阅读有关发出 JSONP 请求的信息 link。 -
@Zudwa 嗨,我试着理解你的解释。但我没明白。我以前从未使用过 JSONP。你能给我举个例子吗?
-
uat.pbbank.com 是您的域吗?我的意思是,你在开发它的后端吗?
标签: jquery forms cakephp form-submit mozilla