关于ajax的一些问题,大神过来看看解答一下下?

<body>
    <form id="myForm">
        <label>帐号: <input type="text" name="login" id="login"><span class="suc">√</span></label>
        <p></p>
        <label>密码: <input type="text" name="password" id="password"></label>
        <button>登录</button>
    </form>
</body>
$.ajax({
    url:'sub.json',
    type:'get',
    success:function(data){
        $.each(data,function(i,cont){   
            if($('#login').val()===cont.name&&$('#password').val()==cont.password){
                alert('登录成功')
                location.href='http://www.baidu.com';
                    
            }else{
                alert('输入帐号和密码有误')
            }
            
        })

以上例子就是我判断我输入的帐号和密码是否在json文件中有,如果有则登录成功,
如果没有则登录失败。

因为是将他们循环遍历然后在json文件中查找数据。但是如果登录失败就会弹出两次 输入帐号和密码有误。怎么才能实现,既能循环遍历查找每一个json文件是否与输入的帐号密码一直进行判断。又能让alert只弹出一次?该怎么该?

阅读 2.3k
3 个回答

首先你这个逻辑就有错误, 登陆成功与否, 是后台返回的结果成功, 失败. 并不是你前台去判断的.
其次, 你这样循环肯定是要弹出多个的, cont这个数组有几条就会弹出几条.
不考虑安全性, 或者单纯自己玩可以这么改

var b = false;
$.each(data,function(i,cont){ 
 if($('#login').val()===cont.name&&$('#password').val()==cont.password){
       //alert('登录成功')
       b = true;
});
 if(b){
    alert('登录成功');
 }
 else{
    alert('登录失败'); 
}
                    
$.ajax({
    url:'sub.json',
    type:'get',
    success:function(data){
        var flag = false;
        $.each(data,function(i,cont){   
            if($('#login').val()===cont.name&&$('#password').val()==cont.password){
                alert('登录成功')
                location.href='http://www.baidu.com';
                 
            }else{
                if(!flag)
                    alert('输入帐号和密码有误')
                flag = true;
            }
    }
})

success: function(data){

var flag=false;
$.each(data,function(i,cont){
    if($('#login').val()===cont.name&&$('#password').val()==cont.password){
        flag=true;
        alert('登录成功')
           break;
    }
})
if(!flag)
    alert("输入帐号和密码有误");
 else
    location.href='http://www.baidu.com';

}

我觉得可以这样=.=

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题