【问题标题】:Success message doesn't work [duplicate]成功消息不起作用[重复]
【发布时间】:2018-01-13 22:43:27
【问题描述】:

我有一个小问题,
我正在处理联系表格, 我的问题是ajax调用没有显示成功消息,它坚持 关于“发送” 该调用正在工作,因为它转到 PHP 页面并从那里运行该函数,因此一切正常,期待成功消息。 我很乐意为您提供帮助,谢谢!

这是 JavaScript 页面:

  var nameRegx = /^[' a-zא-ת]+(\s[' a-zא-ת]+)*$/i,
    emailRegx = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})$/,
    phoneRegx = /^(?:0(?!(5|7))(?:2|3|4|8|9))(?:-?\d){7}$|^(0(?=5|7)(?:-?
     \d){9})$/,
    td = 'p.text-danger',
    sa = '#submitAnimate',
    sb = '#submitBtn',
    nf = '#name',
    ef = '#email',
    pf = '#phone',
    mf = '#message';

 $(sa).hide();

 $('#contactForm').on('submit', function (event) {

  event.preventDefault();
 var isValid = true;
 $(td).text('');
 $(' input[type="text"], textarea').removeClass('error');
$(sb).attr('disabled', true);
  $(sa).show();

 var userData = {
name: $(nf).val().trim(),
email: $(ef).val().trim(),
phone: $(pf).val().trim(),
message: $(mf).val().trim()
 };

 if (userData.name.length < 2 || userData.name.length > 70 || 
 !nameRegx.test(userData.name)) {
isValid = false;
  setError(nf, 'name');
  }

  if (!emailRegx.test(userData.email)) {
  isValid = false;
  setError(ef, 'email');
  }

if (!phoneRegx.test(userData.phone)) {
isValid = false;
setError(pf, 'phone');
   }

 if (userData.message.length < 3) {
isValid = false;
setError(mf, 'message');
 }

  if (!isValid) {

$(sb).attr('disabled', false);
setTimeout(function(){ $(sa).hide(); }, 500);

 } else {

  $.ajax({
  url: "assets/contact_form/process-contact.php",
  type: "POST",
  dataType: "html",
  data: userData,
  beforeSend: function () {
    $( sb ).val('Sending...');
  },
  success: function (response) {

    if (response == true) {

    successmessage = 'Data was succesfully captured';
            $("#gmsg").text(successmessage);//THIS MESSAGE DOESN'T APPEAR


    } else {

      $( sb ).val('Can not send, please try latter');

    }
  }
});

  }

});

$('input[type="text"], textarea').on('keyup', function () {
  $(this).next().text('');
});

  function setError(target, field) {
setTimeout(function () {
   $(target).val('').addClass('error');
  $(target).next().text('* Please enter your ' + field);
  }, 500);
   }

【问题讨论】:

  • 尝试使用 if (response) 而不是 if (response == true)
  • 请停止多次发布同一个问题。

标签: javascript jquery ajax validation jquery-validate


【解决方案1】:

success : function(response) 中,对象响应不是布尔值。它是ajax调用的返回响应,它将是一个字符串。 只需从您的代码中删除 if(response == true) 即可。 然后,它会正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-09
    • 2021-02-13
    • 1970-01-01
    • 2019-07-08
    • 2021-05-12
    • 1970-01-01
    • 2019-12-14
    相关资源
    最近更新 更多