¿Cómo hago que un campo sea obligatorio en HTML?

3 minutos de lectura

Avatar de usuario de HTTP
HTTP

No puedo entender por qué el nuevo required El atributo de HTML parece no funcionar, y sé que mi código simple parece estar bien. ¿Qué debo hacer para que esto funcione?

Aquí está mi código en HTML:

<input type = "text" class = "txtPost" placeholder = "Post a question?" required>
<button class = "btnPost btnBlue">Post</button>

Corríjame si me equivoco pero, si alguna vez ejecuto el código en el navegador y hago clic en el botón sin ningún valor en el cuadro de texto, debería tener una información sobre herramientas que muestre que ese campo era obligatorio, ¿no? Pero no pasa nada, no importa cuántas veces hagas clic en el botón. ¿Estoy mal entendido sobre cómo usar el requerido ¿atributo?

Estoy ejecutando mi código en Google Chrome 28. Esto es con <!doctype HTML>.

  • ¿Y tiene un formulario alrededor de su campo de entrada y botón?

    – putvande

    31 de julio de 2013 a las 9:23

Asegúrese de que el atributo novalidate no esté configurado en su etiqueta de formulario

  • Interesante; Por lo general, uso el marco Rails cuando construyo aplicaciones web y nunca he encontrado el novalidate atributo adjunto a mi formulario hasta hoy; Ni siquiera sabía buscar esto hasta que leí tu comentario :thumbs_up:

    – VegaStudios

    19 abr 2019 a las 20:38

Intente ponerlo dentro de una etiqueta de formulario y cerrar la etiqueta de entrada:

<form>
  <input type = "text" class = "txtPost" placeholder = "Post a question?" required />
  <button class = "btnPost btnBlue">Post</button>
</form>

  • Gracias por tu aporte hombre, esto resuelve mi problema. Normalmente no hago nada form etiquetas en mis entradas porque obtengo sus valores con sus correspondientes id‘s o class nombres, pero ahora sé lo importante que es form la etiqueta era.

    – HTTP

    31 de julio de 2013 a las 9:27

La ausencia del elemento de campo Enviar en el formulario también provoca este error. En el caso del campo “botón” manejado por JS para enviar el formulario carece de la necesidad del botón Enviar, por lo tanto, Requerido no funciona

Siempre y cuando haya agregado tipo = “enviar” para abotonarte eres bueno.

 <form action="">
    <input type="text" placeholder="name" required>
    <button type="submit">Submit</button>
</form>

Hablando en realidad, cuando probé esto, funcionó solo cuando configuré el valor de acción y método para el formulario. ¡Es curioso cómo funciona!

Avatar de usuario de Khaled Helwane
Khaled Helwane

Aquí un resumen de lo que encontré:
1- debe asegurarse de que el botón sea del tipo “enviar” y no del tipo “botón”, en realidad el botón será del tipo “enviar” de forma predeterminada, por lo que ya no tiene que aclarar el tipo.

 <form id="myform">
          <input type = "text" required />
          <button id="mybutton">Post</button>
        </form>

2- debe enviar el formulario usando el botón de otra manera, mi problema fue enviar mi formulario usando JavaScript con atributo de formulario mientras que el tipo de mi botón es “botón”, así que hice esto y funcionó;
aquí estaba mi problema

document.getElementById("myform").submit();

y esta es la corrección:

 document.getElementById("mybutton").type = "submit";
  document.getElementById("mybutton").submit();

Avatar de usuario de TylerH
tylerh

Yo tuve el mismo problema. Estaba haciendo un onClick en el botón de enviar y eso estaba causando el problema. En su lugar, intente poner onSubmit=”anyAction” en el formulario y eso debería funcionar.

¿Ha sido útil esta solución?