js回车键登录与alert模态框回车键冲突问题解决

js回车键登录与alert模态框回车键冲突问题解决

当用户没有输入密码或者输入错误,会弹出警告框提示,这时按回车键关闭警告框的时候也会提交表单,而且按钮value='登录中...'      属性disabled="disabled",就造成了冲突。

所以我的解决办法是给回车键加一个判断,逻辑很简单,下面直接看代码。

<body οnkeydοwn="keyLogin();">

    <div class="loginFormSubmit">
        <button type="button" class="am-btn am-btn-primary" οnclick="login();">登录</button>
    </div>

    <div class="am-modal am-modal-alert" tabindex="-1" id="my-alert">
      <div class="am-modal-dialog">
        <div class="am-modal-hd"></div>
        <div class="am-modal-bd alert-msg">
          
        </div>
        <div class="am-modal-footer">
          <span class="am-modal-btn" id="login_confirm" οnclick="change_status();">确定</span>
        </div>
      </div>
    </div>

</body>

<script>

function keyLogin() {
    if(event.keyCode == 13) {
        //event.stopPropagation();
        if($('#my-alert').css('display') == 'none'){
            $('.loginFormSubmit>button').click();
        }else{
            $('#login_confirm').click();
        }
        
    }
}
// 异步登录
function login() {

    $('.loginFormSubmit>button[type=button]').attr('disabled','disabled').html('<i class="am-icon-spinner am-icon-spin"></i>登录中...');
    setTimeout(ajax_login(), 2000);
}

function ajax_login() {

    var login_url = $('.loginForm').attr('action'),
        login       = $("#login").val(),
        password  = $('#password').val(),
        remember  = $('#remember').val();

    $.ajax({
        url: login_url,
        type: 'POST',
        dataType: 'json',
        data: {'login' : login, 'password' : password, 'remember' : remember},
        success: function(json) {
            // console.log(json);return;
            if(json.code == 404) {
                $('#my-alert .alert-msg').html(json.err);
                $('#my-alert').modal();
                return false; 
            } else if(json.code == 300) {
                $('#my-alert .alert-msg').html(json.err);
                $('#my-alert').modal();
                return false; 
            } else if(json.code == 200) {
                $('.loginFormSubmit>button').html('正在跳转...');
                window.location.href = json.redirect;
            }
        }
    })
}

function change_status() {
    $('.loginFormSubmit>button[type=button]').attr('disabled', false).html('登录');
}

</script>

转载于:https://my.oschina.net/af666/blog/783135

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值