【问题标题】:How to get response from ajax after selecting the auto completing email选择自动完成电子邮件后如何从 ajax 获得响应
【发布时间】:2017-06-13 11:47:34
【问题描述】:

我有一个代码可以使用按键上的 ajax 检查数据库中的电子邮件 ID 是否可用。如果电子邮件 ID 可用,则提交按钮将启用,或者数据库中的电子邮件 ID 不可用,则提交按钮将显示为禁用。 我在上面的过程中没有问题,下面的代码适用于上述过程。

我的问题是,当用户输入用户名和密码时,有时用户会弹出将用户名和密码存储在浏览器中的窗口。我说的是 cookie,或者可以说是自动归档的数据。例如:如果您在文本字段中输入电子邮件 ID 两到三次,那么下次您单击该字段时,您将自动收到您的电子邮件。

我遇到了同样的问题。我在浏览器上保存了用户名和密码,现在我正在选择我的用户名并单击不起作用的按钮,因为我在按键上使用了 ajax。如果我输入电子邮件,那么它可以工作 如果我选择电子邮件,那么它就不能工作。如果任何用户选择了电子邮件 ID,我需要该按钮也应该处于活动状态。

希望你能理解我的问题。你能帮我解决这个问题吗?

在按键时获取 ajax 响应

自动填充电子邮件,没有来自 ajax 的响应

<!DOCTYPE html> 
<html> 
<head> 
<title></title> 
</head> 
<body> 
<form action="" method="POST">

<input type="email" id="email" name="email" class="text_field" /> 
<span id="email-validation-error" class="error"></span> 

<input id="submitYesNo" type="submit" name="next" value="submit" disabled="disabled"> 
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<script type="text/javascript"> 


/*checking email id is already exist or not*/ 
$(document).ready(function() { 
$('input[type="submit"]').attr('disabled', true); 
}); 

$(document).ready(function() 
{ 
var elem = $("#id"); //assign target element with id 

$("input[name='email']").on('keyup',function() 
{ 
var email = $('#email').val(); 
$.ajax( 
{ 
url:'process.php', 
type:'POST', 
data:'email='+email, 
success:function(data) 
{ 
if (data == "success") { 
$("#submitYesNo").prop('disabled', false); 
$("#email-validation-error").html(data); 
} 
else{ 
$("#email-validation-error").html(data); 
$("#submitYesNo").prop('disabled', true); 
} 
}, 

}); 
}); 
}); 

</script> 
</body> 
</html>

PHP

 if(isset($_POST['email'])){
    $email=$_POST['email'];
    $_SESSION['username']=$email;

    $query="SELECT Email FROM `request` WHERE Email='".$email."'";
    $result = $conn->query($query);

    $search_record=$result->num_rows;

    if ($search_record > 0) {
     echo "success";
          }
        else{
         echo "Email does not exist, please sign up to use our services";
        }   


}

【问题讨论】:

  • 在 jquery 的 on 函数中添加带有模糊的键,或者您可以在输入字段中关闭自动完成功能,例如 autocomplete="off"
  • 感谢Mr.Fairy Dancer的回复,能帮我举个例子吗?
  • 关闭电子邮件字段中的自动完成功能&lt;input type="email" id="email" name="email" autocomplete="off" class="text_field" /&gt; 关闭整个表单的自动完成功能&lt;form action="" method="POST" autocomplete="off"&gt;
  • 最好设置 autocomplete="off"
  • 如果我关闭自动完成功能。并且任何用户在浏览器上保存了他们的用户名和密码然后它会工作吗?

标签: php jquery ajax cookies autocomplete


【解决方案1】:

当用户在输入框外点击或聚焦时,此功能将起作用,否则将不起作用

$("input[name='email']").bind('change keyup', function(){
     console.log(this.value);
});

一旦它可能对您的方案有所帮助,请检查它

【讨论】:

  • 这对我不起作用。我的电子邮件和密码存储在浏览器中。每当我检查我的网站时,我的电子邮件 ID 会自动显示在电子邮件字段中,但是当我单击下一步按钮时,什么都没有发生,因为那没有调用我的 ajax。如果我输入我的电子邮件,它正在工作
  • 然后更改按钮单击 [下一个按钮] 上的 ajax 调用。因此,每当单击按钮时,它都会执行 ajax 调用并验证您的流程。
  • 先生。仙女。我尝试了我们的代码。我删除了 keyup 并添加了您的代码并开始工作,我只想知道您为什么使用 console.log(this.value);
  • 酷!感谢您的帮助。
【解决方案2】:

将模糊事件与 keyup 事件绑定。这样当你的文本框失去焦点时,你的 ajax 可以再次被调用

$("input[name='email']").on('keyup blur',function() // Add blur event
{ 

【讨论】:

  • Mr.B. Desai,如果任何用户选择自动完成他/她的电子邮件,那么 Ajax 将起作用吗?
猜你喜欢
  • 2016-02-08
  • 2015-10-20
  • 1970-01-01
  • 2022-11-26
  • 2020-08-06
  • 1970-01-01
  • 1970-01-01
  • 2020-10-28
  • 2021-12-27
相关资源
最近更新 更多