Duvida validar campos com javascript

tenho um formulario que toda vez que é submetido, envia os dados para uma classe java, estou usando
servlet, no butao do submit coloquei no onClick um metodo javaScript que valida os campos. O problema é que
mesmo validando o campo. O jsp mostra a messagem de erro mostrando que o campo esta em branco, como faço para ele
não submeter o formulario, quando o campo estiver vazio.

. . .

function validarCampos() {
if(document.getElementById(‘nome’).value == “”){
alert(“Valor do campo nome não foi informado”);
return false;
}

document.form.submit();

}

a messagem do jsp é essa

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: exceção
ControllerServlet.service(ControllerServlet.java:21)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

root cause

java.lang.NumberFormatException: empty String
sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
java.lang.Double.valueOf(Unknown Source)
java.lang.Double.(Unknown Source)
ClassificaSibctiLogica.executa(ClassificaSibctiLogica.java:133)
ControllerServlet.service(ControllerServlet.java:18)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.23 logs.
Apache Tomcat/7.0.23

[code]<html>
<head>
<script language=“javascript”>
function valida(){
if(document.f.texto.value == “”){
// mensagem
} else {
document.f.submit();
}
}
</script>

</style>
</><head>
<body>
<form name=“f” id=“f” action=“blablabla.bla”>
<input type=“text” name=“texto” id=“texto”/>
<input type=“button” value=“enviar” onclick=“valida()”/>
</form>
</body>
</html>[/code]

opa value mais mesmo assim, tava aparecendo a mensagem de erro do jsp.

resolvi colocando esse codigo.

document.formClassifica.action = “controladora?valor=cadastra”;

O action so funciona depois de checar os dados, so que quando a mensagem aparece as informação do e do radio são
atualizadas, dos campos text não são porque eu coloquei no value o ${param.nome}.