这是请求数据以检查电子邮件是否存在的表单中的代码的一部分。问题是,如果没有这样的邮件,程序应该返回0。它无法正常工作,因为程序会继续发送数据,即使邮件不正确。
如果您想了解更多信息,或者我遗失了某些内容,请告知我们。提前谢谢。
$(document).ready(function () {
$("#enviar").click(function(e) {
e.preventDefault();
var error = false;
consulta = $("#email2").val();
$.ajax({
type: "POST",
url: "compruebaEmail.php",
data: "b="+consulta,
dataType: "html",
error: function(){
alert("error petición ajax");
},
success: function(data){
if(data==0){
$("#error").html("Email incorrecto");
error = false;
}else{
$("form").unbind('submit').submit();
}
}
});
if (error){
return false;
}
});
});
这是我的compruebaEmail.php
<?php require_once('connections/vinoteca.php'); ?>
<?php
mysql_select_db($database_vinoteca, $vinoteca);
$user = $_POST['b'];
if(!empty($user)) {
comprobar($user);
}
function comprobar($b) {
$sql = mysql_query("SELECT * FROM usuarios WHERE email = '".$b."'");
$contar = mysql_num_rows($sql);
if($contar == 0){
echo 0;
}else{
echo 1;
}
}
?>
这是POST
<form method="POST" name="form1" action="validarUsu.php">
<div class="row">
<span class="center">Email</span>
</div>
<div class="row">
<input type="text" name="email" id="email2" value="" size="32" />
</div>
<div class="row">
<span class="center">Contraseña</span>
</div>
<div class="row">
<input type="password" name="password" id="id2" value="" size="32" />
</div>
<div class="row">
<span id="error"> </span>
</div>
<div class="row">
<input type="submit" value="Acceder" id="enviar" size="20">
</div>
<div class="row">
<a href="recuperarPassword.php">Recuperar contraseña</a>
</div>
</form>
答案 0 :(得分:1)
问题是你从Ajax函数返回false
。您需要从click
函数返回false。试一试:
$("#enviar").click(function() {
var error = false;
consulta = $("#email2").val();
$.ajax({
type: "POST",
url: "compruebaEmail.php",
data: "b="+consulta,
dataType: "html",
error: function(){
alert("error petición ajax");
},
success: function(data){
if(data==0){
$("#error").html("Email incorrecto");
error = true;
}
}
});
if (error)
return false;
});
答案 1 :(得分:0)
如果你想取消提交活动,那么:
要么:
1 - 将事件arg添加到您的点击处理程序:
$("#enviar").click(function(event){
2 - 使用event.preventDefault();当你想取消提交信息时:)
或更改&#34;返回false;&#34;位置,以便在&#34;点击&#34;处理程序范围并注意&#34;成功&#34;范围例如带有一个布尔值,表示是否存在错误(编辑:那是Styphon&#39;解决方案)