Hola,
acabo de cambiar mi código por el tuyo (adaptado a mis variables), y me sale todo el rato como al princio. Aunque rellene alguno de los campos, me sale el alert con todos los campos como vacíos.
La llamada a la función la sigo haciendo desde el formulario... en el evento
Código PHP:
onSubmit()="return valida();"
Nuse porque....
Saludos