以下代码仅在电子邮件存在时提醒用户。我应该如何防止用户提交表单 这是视图创建.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);
}
});
}
});
});
欢迎控制器.php
function email_availabilty()
{
$res=$_POST['email'];
$this->load->model('queries');
$data=$this->queries->email_available($res);
echo $data;
}
这是模型查询.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;
}
}
请告诉我,如果电子邮件已经存在,如何防止用户提交表单。
谢谢你们,伙计们! 我有解决方案 通过在后面添加"$("#email").val('');'
警报("电子邮件已存在");
发生这种情况是因为您没有通过将event.preventDefault()
或return
与false
或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...
},
如果电子邮件已经存在,您应该使用 jQuery 禁用表单的Send
按钮。
更好的是,只有在电子邮件不存在时才应启用它。