Normalmente opto pelo uso do jQuery Validate para validação de formulário (veja como ignorar o jQuery Validate), mas em uma tela que estava trabalhando eu tinha vários formulários que abriam em modal (usando o PrettyPhoto) e eram manipulados antes da abertura dependendo das ações do usuário naquela tela.
Ao invés de usar o validate achei que seria mais simples implementar uma função para validação, seguindo a seguinte regra:
- Os elementos com a classe "required" devem ser obrigatórios
- Adicionar a classe "error" aos elementos obrigatórios não preenchidos
- Exibir um elemento com a mensagem de erro do formulário
- Retornar true se passar na validação
A função ficou bastante simples e poderia ser escrita facilmente sem o uso do jQuery.
Validação sem plugin
	function validateForm(form){
	    var err = 0;
	    form.children('.required').each(function(){
	        if($(this).val() == '' || $(this).val() == null){
	            $(this).addClass('error');
	            form.children('.error_form').show();
	            err++;
	        }
	    })
	    if(err == 0)
	        return true
	}
Update
Seguindo a dica do Chris, a validação do exemplo acima pode ser substituída por uma expressão regular que verifica se a string é vazia no javascript, como no exemplo abaixo:
	function notNull (x){
	        if(a!="" && !(a.match(/^\s+$/))){
	            return true;
	        }else{
	            return false;
	        }
	}
A função segue a seguinte lógica:
- Recebe como parâmetro um objeto do jQuery (optei por isso ao invés do id ou classe pois meu código já tinha uma variável com o form selecionado por questões de performance.
- Cria uma variável chamada err com valor 0, que irá contabilizar os erros (caso exitam).
- 
		Percorre todos os elementos do formulário e busca pelos que tenham a classe "required", percorrendo todos estes e:
- Verifica se o valor do elemento é vazio ou null, se for adiciona a classe "error" no elemento e mostra o elemento com classe "error_form" que está no formulário (caso exista).
- Soma 1 a variável err.
 
- Se depois de percorrer todos os elementos com classe "required" nenhum erro for contabilizado retorna true.
Seria possível retornar também o número de erros em caso de false, modificando o final da função para:
	    if(err == 0)
	        return true
	    else
	        return err;
Sei que validação já é um assunto um pouco "manjado" de javascript e muita gente opta pelos plugins, resolvi compartilhar para mostrar como funciona e exeplificar que nem sempre é necessário a gente inserir plugin para tudo o que vamos fazer…