Ответы пользователя по тегу JavaScript
  • JQuery. Как улучшить регистрационную форму?

    wrmax
    @wrmax
    Старайтесь стремится к тому, чтобы код можно было прочитать без комментариев.
    Обычно левую фигурну скобку не пишут с новой строки

    Ниже улучшенный вариант кода для дальнейшего развития
    $(this).blur(function () {
    	var removeErrorMessage = function(className) { $(this).next().children("." + className).remove(); };
    	var showErrorMessage = function(className, message ){
    		if (!($("." + className).length)){
    			$(this).parent().children(".error-list").append(["<li class='", className, "'>", message, "</li>"].join());
    		}
    	};
    	var showSuccessView = function() { $(this).parent().parent().attr("class", "control-group success"); };
    	var showWrongView = function() { $(this).parent().parent().attr("class", "control-group error"); };
    	
    	var checkLogin = function(login){
    		var loginVerified = new RegExp(/^[a-zA-Z0-9_-]{3,16}$/).test(login);	
    		
    		if ((loginVerified) && (login.length >= 6)) showSuccessView(); else showWrongView();
    		
    		if (login.length >= 6) removeErrorMessage("help-login-length");
    		else{ 
    			showErrorMessage("help-inline help-login-length", "В логине должно быть не менее 6 символов");
    		}
    		
    		if (loginVerified) removeErrorMessage("help-login-reg");
    		else{
    			showErrorMessage("help-inline help-login-reg", "Только символы латинского алфавита, цифры, дефис и подчеркивание (a–z, 0-9, -, _).");
    		}
    		
    	};
    	
    	switch($(this).attr("id")){
    		case "id_username": checkLogin($(this).val()); break;
    	}
    });
    
    Ответ написан
    3 комментария