成功消息不起作用[重复]

Posted

技术标签:

【中文标题】成功消息不起作用[重复]【英文标题】: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) 请停止多次发布同一个问题。 【参考方案1】:

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

【讨论】:

以上是关于成功消息不起作用[重复]的主要内容,如果未能解决你的问题,请参考以下文章

php express checkout 重复创建配置文件成功但重复不起作用

EqualTo Jquery Valid 不起作用[重复]

标头位置在 PHP 中不起作用 [重复]

由于CORS,角度授权不起作用[重复]

facebook通知中的自定义消息不起作用

我正在尝试更新状态,但它不起作用[重复]