【发布时间】:2018-11-27 13:39:31
【问题描述】:
我的网站上有一个联系表。填写表格并单击提交后,按钮卡在“发送...”但我仍然收到电子邮件。我认为这可能与我的代码的 ajax 部分有关?任何帮助表示赞赏。
JS:
$(function()
{
function after_form_submitted(data)
{
if(data.result == 'success')
{
$('form#reused_form').hide();
$('#success_message').show();
$('#error_message').hide();
}
else
{
$('#error_message').append('<ul></ul>');
jQuery.each(data.errors,function(key,val)
{
$('#error_message ul').append('<li>'+key+':'+val+'</li>');
});
$('#success_message').hide();
$('#error_message').show();
//reverse the response on the button
$('button[type="button"]', $form).each(function()
{
$btn = $(this);
label = $btn.prop('orig_label');
if(label)
{
$btn.prop('type','submit' );
$btn.text(label);
$btn.prop('orig_label','');
}
});
}//else
}
$('#reused_form').submit(function(e)
{
e.preventDefault();
$form = $(this);
//show some response on the button
$('button[type="submit"]', $form).each(function()
{
$btn = $(this);
$btn.prop('type','button' );
$btn.prop('orig_label',$btn.text());
$btn.text('Sending ...');
});
$.ajax({
type: "POST",
url: 'handler.php',
data: $form.serialize(),
success: after_form_submitted,
dataType: 'json'
});
});
});
【问题讨论】:
-
你检查你的控制台是否有任何错误或什么?
-
您需要在 Javascript 中声明您的变量。
label和$btn永远不会被声明。我确信这会导致您的开发者控制台中出现错误消息。 -
我声明了我的变量,但它仍然停留在“正在发送...”
-
你的回调函数执行了吗?我认为您的回调函数不知道
$form是什么。