onsubmit校验表单时利用ajax的return false无效问题
日志编号:223 发表时间: 2017-10-19 00:30:36 关注次数:1112<form method="post" action="?ac=login" onsubmit="return chk_login();">
$.ajax({
type:"GET",//or POST
url:'/a.php?ac=login&username='+username+'&password='+password+"&"+Math.random(),
success:function(data){
if(data=="1"){
//alert('正确');
}
else
{
$("#error-msg").text('错误');
return false;
}
}
});
此例中,return false无效,无论用户名密码是否正确均直接提交表单(JS的$("#error-msg").text('错误');不生效的样子)。
两种解决方式:
一、ajax异步导致函数处理不同步,改成:
<form method="post" action="?ac=login" onsubmit="return chk_login();">
var ajaxFlag=true;//用flag的方式,使得子函数$.ajax与主函数check()交互起来
$.ajax({
type:"GET",//or POST
async:false,//设置同步方式,非异步!
cache:false,//严格禁止缓存!
url:'/a.php?ac=login&username='+username+'&password='+password+"&"+Math.random(),
success:function(data){
if(data=="1"){
//alert('正确');
}
else
{
$("#error-msg").text('错误');
ajaxFlag=false;
}
}
});
if(!ajaxFlag){
return false;
}
二、简单暴力:
<form method="post">
<input name="submit" id="login_submit" value=" 立即登录 " type="button" onclick="chk_login();" />
JS部分不改。
$.ajax({
type:"GET",//or POST
url:'/a.php?ac=login&username='+username+'&password='+password+"&"+Math.random(),
success:function(data){
if(data=="1"){
//alert('正确');
}
else
{
$("#error-msg").text('错误');
return false;
}
}
});
此例中,return false无效,无论用户名密码是否正确均直接提交表单(JS的$("#error-msg").text('错误');不生效的样子)。
两种解决方式:
一、ajax异步导致函数处理不同步,改成:
<form method="post" action="?ac=login" onsubmit="return chk_login();">
var ajaxFlag=true;//用flag的方式,使得子函数$.ajax与主函数check()交互起来
$.ajax({
type:"GET",//or POST
async:false,//设置同步方式,非异步!
cache:false,//严格禁止缓存!
url:'/a.php?ac=login&username='+username+'&password='+password+"&"+Math.random(),
success:function(data){
if(data=="1"){
//alert('正确');
}
else
{
$("#error-msg").text('错误');
ajaxFlag=false;
}
}
});
if(!ajaxFlag){
return false;
}
二、简单暴力:
<form method="post">
<input name="submit" id="login_submit" value=" 立即登录 " type="button" onclick="chk_login();" />
JS部分不改。
本站不提供讨论功能。
本站所有非新闻类文章均为原创,且禁止转载。
本站为了获得更多流量赚取广告费,难免会有以次充好的文章,望见谅,勿鄙视。
本站所有非新闻类文章均为原创,且禁止转载。
本站为了获得更多流量赚取广告费,难免会有以次充好的文章,望见谅,勿鄙视。