javascript - 当凭据不匹配时,阻止登录表单提交(AJAX)(返回 false 不起作用)

标签 javascript ajax forms form-submit

这是我的表格:

 <form name="loginform" method="POST" action="login" onsubmit="return validateLogin()">            
<div>  User Name  :<input class="input" name="username" type="text" /> </div> 
<div> Password  :<input class="input" name="password" type="password" /> </div>        
<div> id="yaha" style="color:red;font:bold 16px garamond"</div>                         
<input style="font-weight:bold;" type="submit" value="Login" />

javascript代码如下所示:

function validateLogin()
{
var x1=document.forms["loginform"];
if(//validations)
      {
       return false;
      }
 else
{    goajax(x1.username.value,x1.password.value);}        
 }//validate login ends...

var requ = null;

function goajax( u,  p)
{
requ=new XMLHttpRequest();
//code for posting ajax data
requ.onreadystatechange=display;

} 
function display()
{
if(requ.readyState == 4)
{
    if(requ.status == 200)
    {
    var message = requ.responseText;
    alert("message==="+message);
    var x;
    if(message.trim() == "ok")
        {
        var x1=document.forms["loginform"];
        return true;
        }
        else if(message.trim() == "no")
        {
        document.getElementById('yaha').innerHTML="Invalid Username or Password!!!";
        x1.password.value="";
        return false;
        }
        else if(message.trim() == "nv")
        {
        document.getElementById('yaha').innerHTML="Account not Activated";
        return false;
        }
    }     
}

}

我的问题是:我正在根据需要从服务器获取响应,但如果出现不需要的响应,即使在“return false;”之后,表单也会被提交。 (参见函数display())

请向下滚动到函数 display(),我不希望在消息为“no”或“nv”时提交表单。基本上“return false”不起作用

最佳答案

另一种方法是cancel the default event (在本例中为提交)

像这样:

function validateLogin(e)
{
var x1=document.forms["loginform"];
if(//validations)
      {
       e.preventDefault();
       return false;
      }

关于javascript - 当凭据不匹配时,阻止登录表单提交(AJAX)(返回 false 不起作用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13930914/

相关文章:

javascript - 管理 django 中 js 库中的静态链接

javascript - 将数据推送到 JSONModel

javascript - Netsuite 搜索过滤条件不起作用

javascript - AngularJS 标签中的单引号

iOS 6 Safari 图片上传 - 方向错误

javascript - 在 JavaScript 中的序列化数组中设置复选框值

javascript - 如何从 Javascript 中的按钮单击调用原始表单

javascript - AJAX 按钮过滤器更新代码更新(查看新代码)

jquery - 如何使用 JQuery AJAX 在 GET 请求中将数组作为查询字符串传递

javascript - 如何从数据库获取 JSON 字符串结果以供以后使用