【发布时间】:2017-05-02 20:08:06
【问题描述】:
我正在一个有 2 个联系表格的网站上工作,我使用 ajax jquery 通过 php 发送邮件。
当我使用单一表单和 jQuery 时,它工作正常。
当我粘贴 jQuery 代码并根据表单 2 变量进行修改时,它可以工作,但是首先 jQuery 代码正在发送空白值。
一次,只有一个表单适用于我在不同页面上的 HTML 表单。
提前感谢您的帮助。 jQuery代码
var form=$('#contactform_forms');
var formMessages=$('#message');
$(form).submit(function(e){
$('#submit_btns')
.after('<img src="images/AjaxLoader.gif" class="loader" />')
.attr('disabled','disabled');
e.preventDefault();
var formData=$(form).serialize();
$.ajax({
type:'POST',
url:'contact.php',
data:formData
})
.done(function(response){
$(formMessages).removeClass('error');
$(formMessages).addClass('success');
$(formMessages).text('Thanks! Message has been sent.');
$(formMessages).fadeOut(10000);
$('#contactform_forms img.loader').fadeOut('slow',function(){$(this).remove()});
$('#submit_btns').removeAttr('disabled');
$('#contact_name').val('');
$('#contact_email').val('');
$('#contact_phone').val('');
$('#contact_message').val('');
}).fail(function(data){
$(formMessages).removeClass('success');
$(formMessages).addClass('error');
if(data.responseText!==''){
$(formMessages).text(data.responseText);
}else{
$(formMessages).text('Oops! An error occured.');
}
});
});
表单2的jQuery代码与相同的js文件:
var form=$('#wholesalers_forms');
var formMessages=$('#message');
$(form).submit(function(e){
$('#submit_btns1')
.after('<img src="images/AjaxLoader.gif" class="loader" />')
.attr('disabled','disabled');
e.preventDefault();
var formData=$(form).serialize();
$.ajax({
type:'POST',
url:'wholesalers.php',
data:formData
})
.done(function(response){
$(formMessages).removeClass('error');
$(formMessages).addClass('success');
$(formMessages).text('Thanks! Message has been sent.');
$(formMessages).fadeOut(10000);
$('#wholesalers_forms img.loader').fadeOut('slow',function(){$(this).remove()});
$('#submit_btns1').removeAttr('disabled');
$('#hs_name').val('');
$('#hs_email').val('');
$('#hs_company').val('');
$('#hs_vat').val('');
$('#hs_address').val('');
$('#hs_postcode').val('');
$('#hs_city').val('');
$('#hs_phone').val('');
$('#hs_message').val('');
}).fail(function(data){
$(formMessages).removeClass('success');
$(formMessages).addClass('error');
if(data.responseText!==''){
$(formMessages).text(data.responseText);
}else{
$(formMessages).text('Oops! An error occured.');
}
});
});
当我按上述顺序使用两者时:第一个发送空值,第二个表单工作正常,如果我删除第二个 jQuery,那么第一个代码工作正常,但第二个没有代码发送。
【问题讨论】:
-
能否请您粘贴一般代码,包括带有表单和相关js的HTML?
-
你不应该只是复制粘贴 jQuery 代码第二次。您需要重写该函数,使其适用于两种表单,然后根据单击的提交按钮适当地调用它。
-
是的,克里斯,我重写了,我已经发布了两个代码,但它对我不起作用。
-
我认为这两个脚本在同一个页面上。因此,2
var和.submit()处理程序被覆盖。 (符合问题描述...)
标签: javascript php jquery ajax email