Posiadam formularz:

<div id="articles">
     ...
    <div class="contact">
        <form method="post" action="">
            <div style="clear:both;"><input class="text" type="text" name="name_surname" value="Imię i Nazwisko" /></div>
            <div style="clear:both;"><input class="text" type="text" name="email" value="Email" /></div>
            <div style="clear:both;"><input class="text" type="text" name="phone" value="Telefon" /></div>
            <div style="clear:both;"><input class="text" type="text" name="title" value="Tytuł wiadomości" /></div>
            <div style="clear:both;"><textarea name="description">Treść wiadomości...</textarea></div>
            <div style="clear:both;"><input class="submit" type="submit" value="Wyślij" /></div>
        </form>
    </div>
</div>

Do którego napisałem skrypt:

function validateEmail(str) {
    rg1 = new RegExp('^[a-zA-Z0-9\-\_\.][email protected][a-zA-Z0-9\-]+\.[a-zA-Z]{2,3}$');
    rg2 = new RegExp('^[a-zA-Z0-9\-\_\.][email protected][a-zA-Z0-9\-]+\.[a-zA-Z\.]{3,9}$');
    if(rg1.test(str) || rg2.test(str))
        return true;

    return false;
}

function validatePhone(str) {
    rg = new RegExp('^[0-9]{9,9}$');
    if(rg.test(str))
        return true;

    return false;
}

function validateString(str) {
    rg = new RegExp('^[a-zA-ZęóąśłżźćńĘÓĄŚŁŻŹŃ\ ]{3,255}$');
    if(rg.test(str))
        return true;

    return false;
}

$(document).ready(function(){
    var name    = 'Imię i Nazwisko';
    var email   = 'Email';
    var phone   = 'Telefon';
    var subject = 'Tytuł wiadomości';
    var desc    = 'Treść wiadomości...';

    $('#articles input[type=submit]').attr('disabled', 'disabled');
    $('#articles input[type=text]', this).hover(function(){
        $(this).focus(function(){
            if($(this).val() == name)
                $(this).val('');
            else if($(this).val() == email)
                $(this).val('');
            else if($(this).val() == phone)
                $(this).val('');
            else if($(this).val() == subject)
                $(this).val('');

            $(this).keyup(function(){
                if(!validateString($('#articles input[name=name_surname]').val())) 
                    $(this).css('border', '1px solid #ff0000');
                else 
                    $(this).css('border', '1px solid #00ff00');

                if(!validateEmail($('#articles input[name=email]').val())) 
                    $(this).css('border', '1px solid #ff0000');
                 else 
                    $(this).css('border', '1px solid #00ff00');

                if(!validatePhone($('#articles input[name=phone]').val())) 
                    $(this).css('border', '1px solid #ff0000');
                 else 
                    $(this).css('border', '1px solid #00ff00');

                if(!validateString($('#articles input[name=title]').val())) 
                    $(this).css('border', '1px solid #ff0000');
                 else 
                    $(this).css('border', '1px solid #00ff00'); 
            });
        }); 
    },
    function(){
        $(this).focusout(function(){
            if($('#articles input[name=name_surname]').val() == '') {
                $('#articles input[name=name_surname]').val(name);
                $('#articles input[name=name_surname]').css('border', '1px solid #595959');
            }

            if($('#articles input[name=email]').val() == '') {
                $('#articles input[name=email]').val(email);
                $('#articles input[name=email]').css('border', '1px solid #595959');
            }

            if($('#articles input[name=phone]').val() == '') {
                $('#articles input[name=phone]').val(phone);
                $('#articles input[name=phone]').css('border', '1px solid #595959');
            }

            if($('#articles input[name=title]').val() == '') {
                $('#articles input[name=title]').val(subject);
                $('#articles input[name=title]').css('border', '1px solid #595959');
            }
        });
    });
});

Niestety pole #articles input[name=name_surname] zaczyna być poprawnie walidowane dopiero po wypełnieniu pola #articles input[name=title].
Nie mogę dojść za chusteczkę czym jest to spowodowane @[email protected]