[Resolvido] Ao validar return false mas o form é submitido assim mesmo

Prezados, boa tarde

Depois de muito pesquisar, não conseguir encontrar nada que solucionasse meu problema.

Estou validando um form com JavaScript, veja:

var envia = true;
function validar() {
        var nome = form1.txtTitulo.value;

        if (nome == "") {
        alert('Valor '+String(envia));
            alert('Preencha o campo com um Título.');
             envia = false;
             alert('Valor '+String(envia)); //apenas para verificar se realmente o retorno é falso.
        form1.txtTitulo.focus();
        }
 
}

No form, tanto na linha <form action="pg_Home_gravar.jsp" method="post" name="form1">, como no botão submit

<input type="submit" onclick="return validar()" value="Gravar">, eu acrescento o treixo onclick="return validar() ou no form
onSubmit return validar().
A validação é feita com sucesso! mas caso seja falso, ou seja, mesmo o campo estando vazio, o mesmo é submitido e os dados “vazios” são enviados.

??? Alguem saberia como eu resolvo isso ???

E por algum acaso, alguem teria uma forma melhor de validar os campos do formulário web usando jsp c/ JSTL ?

Desde Já agradeço

Resolvido.
Deixo o input como button e na função javaScript submeto o formulario.

[code]function validar() {
var nome = form1.txtTitulo.value;
if (nome == “”) {
alert(‘Preencha o campo com um Título.’);
form1.txtTitulo.focus();
return 0;
}

alert("Muito obrigado por enviar o formulário");
document.form1.submit(); 
}[/code]
<p >&lt;input type="button" onclick="return validar(this);" value="Gravar"&gt; </p>