3 个答案:
答案 0 :(得分:1)
你确定两张表格都没有提交吗?查看您的代码,看起来它们都是由该功能提交的。 javascript是异步的,所以第二个表单将在第一个表单之后提交,而不是等待第一个表单完成。
如果您想按顺序提交,则必须执行此操作:
function jqsub() {
jqsub1();
function jqsub1() {
//Form 1
var $form = $('#catwebformform39698');
var $messagebox = $('#hide-message');
var $successmessage = " ";
$.ajax({
type: 'POST',
url: $form.attr('action'),
data: $form.serialize(),
success: function (msg) {
$messagebox.append($successmessage);
$messagebox.delay(800).fadeIn(550);
$form.fadeOut(250);
jsub2();
}
});
}
function jsub2() {
//Form 2
var $form2 = $('#catemaillistform1628');
var $messagebox2 = $('#hide-message2');
var $successmessage2 = " ";
$.ajax({
type: 'POST',
url: $form2.attr('action'),
data: $form2.serialize(),
success: function (msg) {
$messagebox2.append($successmessage2);
$messagebox2.delay(800).fadeIn(550);
$form2.fadeOut(250);
}
});
}
}
答案 1 :(得分:0)
在我看来,既然两个AJAX调用都在同一个函数jqsub()内,那么它们都被提交了,这也是你在第二个表单上看到确认的原因。如果您在提交表单时发布代码会更容易帮助,但我认为问题就在那里。
答案 2 :(得分:0)
嗯,很明显。你把两个提交事件都放在一个函数(jqsub)中。
你只需要将它们分开。像这样:
function jqsub(){
//Form 1
var $form = $('#catwebformform39698');
var $messagebox = $('#hide-message');
var $successmessage = " ";
$.ajax({
type: 'POST',
url: $form.attr('action'),
data: $form.serialize(),
success: function (msg) {
$messagebox.append($successmessage);
$messagebox.delay(800).fadeIn(550);
$form.fadeOut(250);
}
});
}
function jqsub2(){
//Form 2
var $form2 = $('#catemaillistform1628');
var $messagebox2 = $('#hide-message2');
var $successmessage2 = " ";
$.ajax({
type: 'POST',
url: $form2.attr('action'),
data: $form2.serialize(),
success: function (msg) {
$messagebox2.append($successmessage2);
$messagebox2.delay(800).fadeIn(550);
$form2.fadeOut(250);
}
});
}
编辑:在这种情况下,您必须以某种方式确定提交的表单。您可以将提交的表单的id传递给函数,然后使用switch语句并分别执行操作。检查this link。您的CMS必须以某种方式为此类操作提供选项。