0

我无法在我的代码中找到问题,每件事都正常工作,但问题是当用户第一次点击或关注文本框时,正确的 img 显示 .. 这是不正确的,但当用户输入时我无法解决这个问题,然后在完成用户正确输入后然后显示,否则不显示。任何人都可以帮助我解决这个问题。我的完整 jquery 和 html 或 css 代码可在此链接中找到,请检查并解决我的问题

我的代码链接

我认为此功能有错误,但无法解决问题

$('#step1 #fName').focus(function(){

        if($('#step1 #fName').hasClass('error_Aplha')==true)
        {
            $('#step1 #fntick').removeClass('block');    
        }
        else {
            $('#step1 #fntick').addClass('block');
        }
    }).blur(function(){

        if($('#step1 #fName').hasClass('error_Aplha')==true)
        {
            $('#step1 .fname_error').fadeIn(100).delay(2000).fadeOut(1000);
            $('#step1 #fntick').removeClass('block');    
        }
        else {
            $('#step1 .fname_error').removeClass('block');    
            $('#step1 #fntick').addClass('block');
        }

    });

提前致谢

4

1 回答 1

1

哇,这是一个简单任务的大量代码。更改它,以便仅在元素的.keyup().blur()事件中进行检查。INPUT

不是 100% 确定预期的行为是什么,但这可能会让你继续前进:

$(document).ready(function(e) {

    var errorAlpha = function() {
        var reg = /^([A-Za-z]+)$/;
        var check = $(this).val();
        if (reg.test(check) == true && check.match(reg) != null) {
            // VALID
            $(this).removeClass('error_Aplha');
            $(this).next('img').addClass('block');
            $(this).prevAll('span.tooltip2').stop(true).delay(500).fadeOut(400);
        } else {
            // INVALID
            $(this).addClass('error_Aplha');
            $(this).next('img').removeClass('block');
            $(this).prevAll('span.tooltip2').fadeIn(500).delay(2000).fadeOut(1000);
        }
    };

    $('#step1 #fName, #step1 #lName').on('keyup blur', errorAlpha);

});​

演示:http: //jsfiddle.net/gU3PU/6/

于 2012-11-23T12:18:20.970 回答