我编写了一个javascript代码,用于处理联系表单中的输入。使用Ajax我将输入信息发送到后端发送电子邮件。
然而,似乎我的代码以某种方式发送多个电子邮件而不是一个。 "电子邮件已发送"消息显示了几次。
有谁能告诉我出了什么问题?
JAVASCRIPT代码:
$(document).on('click', '.individual_contact', function(e) {
e.preventDefault();
var user_name = $('span#user-name').text();
var recipient_name = $(this).attr('data-ind');
console.log('recipient_name='+recipient_name);
$("div#content").hide('fast');
$("#section-form").show('fast');
$("#section-form #recipient").attr('data-contact', recipient_name);
$("#section-form #recipient").attr('placeholder', 'TO: '+recipient_name.toUpperCase());
$("#section-form #name").val('FROM: '+user_name.toUpperCase());
$('.submit_icontact').click(function(e) {
var subject = $('input#subject').val();
var message = $('textarea#message').val();
e.preventDefault();
var form = new FormData();
form.append('user_email', ajaxobject.user_id);
form.append('user_name', user_name);
form.append('recipient_name', recipient_name);
form.append('subject', subject);
form.append('message', message);
form.append('action', 'contact_individual');
console.log(form);
$.ajax({
type: 'POST',
url: ajaxobject.ajaxurl,
enctype: 'multipart/form-data',
cache: false,
contentType: false,
processData: false,
data: form,
dataType: 'json',
success: function(response) {
console.log('Email is sent');
},
error:function(err){
console.log('err,error')
}
});
});
})
答案 0 :(得分:3)
每次点击.individual_contact
时,都会向.submit_icontact
添加另一个事件监听器。
将.submit_icontact
点击事件移出.individual_contact
点击处理程序
答案 1 :(得分:1)
更改:强>
$('.submit_icontact').click(function(e) {
要强>
$('.submit_icontact').unbind().click(function(e) {