以下代码仅在电子邮件存在或不存在时提醒用户。我该如何阻止用户提交表单 //这是视图create.php
$(document).ready(function()
{
$('#email').change(function()
{
var email = $("#email").val();
var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
if(email!='')
{
$.ajax({
type:"POST",
url: "<?php echo site_url('welcome/email_availabilty'); ?>",
data:{ email:email },
success:function(data)
{
if(data)
{
alert('Email Already Exists');
}
else
{
alert('Email Available');
}
},
return false;
error: function(e){
console.log(e);
}
});
}
});
});
//这是controler welcome.php
function email_availabilty()
{
$res=$_POST['email'];
$this->load->model('queries');
$data=$this->queries->email_available($res);
echo $data;
}
//这是模型queries.php
public function email_available($res)
{
$data=$this->db->query("select email from tbl_posts where email='$res'");
if($data->num_rows() >= 1)
{
return TRUE;
}
else
{
return FALSE;
}
}
如果电子邮件已经存在,请告诉我如何阻止用户提交表单。
答案 0 :(得分:2)
谢谢你们,伙计们! 我得到了解决方案 添加'$(“#email”)。val('');'之后
提醒('电子邮件已存在');
答案 1 :(得分:0)
如果电子邮件已存在,您应该使用jQuery禁用表单的Send
按钮。
更好的是,只有在电子邮件不存在的情况下才应启用它。
答案 2 :(得分:0)
这种情况正在发生,因为您没有相应地return
或false
使用event.preventDefault()
或true
来阻止浏览器的默认行为。
function [...](e) {
e.preventDefault();
[...]
}
由于您的AJAX代码中存在随机return false;
,因此您也应该有语法错误。
更改,
success:function(data) {
if(data) {
alert('Email Already Exists');
} else {
alert('Email Available');
}
},
return false; <---- Here...
要,
success:function(data) {
if(data) {
alert('Email Already Exists');
} else {
alert('Email Available');
}
return false; <---- Here...
},