jquery 简单的登录验证

这篇博客介绍了使用jQuery进行简单的登录验证,当用户未输入或用户名不存在时,通过CSS和jQuery动画实现滑动框淡入淡出的提示效果。在实现过程中,博主遇到了关于setTimeout、delay、animate的使用问题,以及如何处理用户连续点击登录按钮的场景。同时,博主对于:checked选择器和disabled属性的使用还存在一些疑问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CSS部分:

<style type="text/css">
    #waimian{
        width: 375px;
        height: 500px;
        background-color: yellow;
        position: relative;
        z-index: 0;
    }
    #info{
        width: 375px;
        height: 40px;
        background-color: black;
        line-height: 50px;
        text-align: center;
        position: absolute;
        top: 280px;
        opacity: 0;
        filter: alpha(opacity=0);
        color: red;
        z-index: 2;
    }
    #hello{
        width: 375px;
        height: 200px;
        background-color: green;
        position: absolute;
        z-index: 1;
        top: 120px;
    }
</style>

jquery部分:

<script type="text/javascript">
    $(function(){
            $('#sub').click(function(){
                $('#sub').attr("disabled",true);
                var $username = $('#username').val().trim();
                var $password = $('#password').val().trim();
                $('#info').html('').css({
                    "top" : "280px",
                    "display" : "block"
                });
                if($username == '' || $password == ''){
                    error('请输入用户名和密码');
                }else if(!$('.chose').is(":checked")){
                    error('请选择用户身份');
                }else{
                    var $chose = $(':checked').val();
                    alert($chose);
                }
            });
            function error(message){
                $('#info').stop().animate({
                    top : "120px",
                    opacity : "0.6"
                },function(){
                    $(this).html(message);
                }).delay(1500).animate({
                    opacity : "0"
                },function(){
                    $('#sub').attr('disabled',false);
                });
            }
    });
</script>

HTML部分:

这里写图片描述

实现

类似于qq登录,在用户没有输入或者该用户不存在的时候,滑动框淡入向上滑动提示信息,过了1500ms再淡出。

效果

这里写图片描述

遇到的问题:

1.一开始想到用定时器setTimeout()实现,后来找到delay()函数代替,注意该函数只能用于动画效果的延迟。
2.延迟之后,如果我在点击登录,不会再出现滑动框,原因是因为我第一次点击使用了animate(),把top位置移动到120px的位置,因此我应该在点击函数的后面加上初始化,让top位置在点击之前始终保持在280px的位置。
3.第一次点击按钮之后,我想要阻止用户连续点击,我就用了disabled:true,但是延迟之后,第一次用的是delay(1500).fadeOut()淡出滑动框,但是如果我想保证滑动框淡出之后,用户可以点击登陆按钮,则我将fadeOut()换成了animate,在它的回调函数里面设置disabled:false
4.感觉自己对:checked选择器还是不太熟悉,以及disabled,是在attr里面用的,而不是css,并且true/false,无需加引号。

疑惑:

1.我只在animate里面通过改变opacity来实现淡入淡出,但是不知道为什么,要在click之后,要在css里面初始化滑动框display:block。

刚入门两个月的新人,如果有什么错误,请指正哈~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值