Validando un formulario con Javascript

Uno de los problemas esenciales de los formularios es la validación de los datos que el usuario introduce. Se debería hacer una doble validación (javascript y el lenguaje dinámico en el que se esté programando) por si el navegador no soporta (o pasa) del Javascript.

El código HTML del formulario sería del estilo:

<form action="respuesta.php" method="post" onsubmit = "return valida(this);" >

Antes de enviarlo (onsubmit) llamamos a la función valida() que tiene el siguiente contenido:

// Validamos los datos requeridos
function valida(formulario)
{
	if (formulario.empresa.value.length == 0 && formulario.categoria.value.length == 0 && formulario.zona.value.length == 0)
	{
		alert('Debes usar algún criterio de búsqueda'); formulario.empresa.focus(); return false;
	}
	if (formulario.empresa.value.length < 3 && formulario.categoria.value.length == 0 && formulario.zona.value.length == 0)
	{
		alert('No se aceptan búsquedas de menos de 4 caracteres'); formulario.empresa.focus(); return false;
	}
	return true;
}

Si el campo empresa del formulario no tiene ningún dato (longitud de su variable igual a 0), (lo mismo con el campo categoría) salta un mensaje.

Lo mismo pasa si el campo empresa tiene menos de 3 caracteres, por poner un ejemplo. Buen truco para formularios de búsqueda y búsquedas coherentes, menos de 3 caracteres devolverían demasiados resultados (posible DoS).