Código PHP :
<!DOCTYPE html> <html> <head> </head> <body> <h1>Prueba de required</h1> <?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { echo "Esto llegó por POST:<pre>"; print_r($_POST); echo "</pre>"; } ?> <form action="" method=post> <p> <label for="username">E-mail address:</label> <input id="username" type="text" required name="un" value=""> <input type=submit value="Enviar"> </form> </body> </html>
Lo que aquí hago es crear un documento HTML5 que consiste en un formulario con un input tipo texto con atributo "required" en él y un botón submit para enviar por POST el dato en cuestión.
El código PHP detecta que la petición es de tipo POST e imprime lo recibido.
El atributo "required" hace que al momento de hacer clic en el boton submit, el envio no se haga y el propio navegador le informa al usuario que hay un campo del formulario que está vacío y necesita tener algún valor.
Este código probado en Opera funciona correctamente. No deja enviar el formulario a menos que el input text tenga algún valor.
En muchos lugares (por ejemplo éste o éste) informa que Google Chrome soporta el atributo required, pero si prueban el código que he posteado, verán que no es cierto.
El problema está en que cualquier test mediante Javascript Chrome informa que sí, soporta el atributo required, pero en la realidad no hace nada. Por ejemplo usando este plugin para saber las características soportadas por un navegador.