我已经编写了以下代码来检查已经存在的电子邮件是否存在使用jquery和jquery validate.Jquery用于电子邮件格式验证。 我在 jquery函数中调用了**** check-email.php **文件。虽然我的数据库中存在emailaddress,但是操作被调用并且它指向仪表板页面。实际上它不应该指向下一页,因为电子邮件已经存在。我的**“返回false;”在jquery函数中没有任何效果。即使它存在于db中也会转到下一页。我没有得到我错的地方???
这是我的代码
index.html的: -
<form name="mysignupform" id="mysignupform" class="form-horizontal" action="Dashboard" method="post">
<div class="control-group">
<label class="control-label" for="inputEmail" >Email</label>
<div class="controls">
<input type="text" name="email" id="inputEmail" placeholder="Email" >
</div>
</div>
<br/>
<div class="control-group">
<label class="control-label" for="inputPassword" >Password</label>
<div class="controls">
<input class="password" type="password" name="password" id="inputPassword" placeholder="Password">
</div>
</div>
<div class="controls">
<input type="hidden" id="body" name="body" value=""></input>
</div>
<div class="control-group">
<div class="controls">
<button type="submit" name="submit" id="signupsubmit"class="btn btn-inverse" onsubmit="return function(e)">Go to Dashboard</button>
</div>
</div>
</form>
我的jquery函数: -
<script>
$(document).ready(function(){ //newly added
$('#signupsubmit').click(function()
{
alert('in');
var emailVal = $('#inputEmail').val(); // assuming this is a input text field
alert(emailVal);
$.post('check-email.php', {'email' : emailVal}, function(data) {
if(data=='true') return false;
else $('#mysignupform').submit();
});
});
});
</script>
my check-email.php: -
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("mojiva", $con);
$sql = "SELECT email FROM user_info WHERE email =".$_POST['email'];
$select = mysql_query($sql,$con);
$row = mysql_num_rows($select);
if ($row > 0)
{
echo 'true';
}
else
{
echo 'false';
}
?>
我在$('#signupsubmit')之后立即在jquery函数中尝试了true false。单击(function()此函数此时返回true works.but当post被调用时它没有任何返回false的效果。
答案 0 :(得分:1)
这可能是因为return false不是指表单而是click事件。
在表格上:
<form name="mysignupform" id="mysignupform" class="form-horizontal" action="Dashboard" method="post" onsubmit="email_check($('#inputEmail').val())" >
然后是JQuery:
<script>
$(document).ready(function(){ //newly added
function check_email(emailVal){
{
alert('in');
alert(emailVal);
$.post('check-email.php', {'email' : emailVal}, function(data) {
if(data=='true') return false;
else return true;
});
}
});
</script>
答案 1 :(得分:0)
尝试通过从提交到按钮更改“类型”来更改此行。
<button type="button" name="submit" id="signupsubmit" class="btn btn-inverse" onsubmit="return function(e)">Go to Dashboard</button>
答案 2 :(得分:0)
如果您想停止表单提交,则需要阻止点击冒泡:
$('#signupsubmit').click(function(e) {
e.preventDefault();
// do your ajax here
}