按钮点击时Ajax也不返回false?

时间:2017-01-26 02:27:16

标签: javascript ajax

我在登录表单弹出模式<button type="submit" class="btn btn-primary btn-lg btn-block" onclick="checkall();">Login</button>

中有一个按钮
function checkall()
    {
     var name=document.getElementById( "login_username" ).value;
     var pass=document.getElementById( "login_password" ).value;
      var testing = true;
     if(name)
     {
      $.ajax({
      type: 'post',
      url: 'checkuser.php',
      data: {
       user_name:name,
       user_pass:pass,
      },
      success: function (response) {
       $( '#name_status' ).html(response);
       if(response=="OK") 
       {   
          var getUrl = window.location;
          var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
          var base2 = baseUrl + "/instructor/index.php";
          window.location = base2;          
       }
       else
       {        
        $('#text-login-msg').text("Testing");
          testing = false;
       }
      },
      error: function() {
        $( '#name_status' ).html("");
        return false;
      }

      });      

     return testing; 
     }         
  }

一切正常我只想停止表单模型刷新页面并在屏幕上显示错误,如果细节不匹配。

`
 else
       {        
        $('#text-login-msg').text("Testing");
          testing = false;
       }
`

它应该显示测试并保持弹出窗口打开。 但这不起作用。我也尝试过返回false也是同样的问题。我知道ajax是 如果数据不匹配那么异步,那么它应该像没有刷新页面那样保持不变。

谢谢。

1 个答案:

答案 0 :(得分:-2)

我认为你的问题是:当响应不是“OK”时如何保持弹出窗口?

<button type="button" class="btn btn-primary btn-lg btn-block" onclick="checkall(event);">Login</button>

更新checkall功能以防止默认close操作。

function checkall(e){
  e.preventDefault();
  //... rest of your codes;
}

还要注意按钮类型submit,通常刷新页面。

  

按钮的类型。可能的值是:
      submit:该按钮将表单数据提交给服务器。如果未指定属性,或者属性动态更改为空值或无效值,则这是默认值       重置:该按钮将所有控件重置为初始值       按钮:该按钮没有默认行为。它可以具有与元素事件关联的客户端脚本,这些事件在事件发生时触发       menu:该按钮打开一个通过其指定元素定义的弹出菜单。

来自Mozilla Documentation