Un control de formulario no válido con nombre='' no se puede enfocar

Resuelto mp1990 asked hace 10 años • 45 respuestas

En Google Chrome, algunos clientes no pueden acceder a mi página de pago. Al intentar enviar un formulario me sale este error:

Un control de formulario no válido con nombre='' no se puede enfocar.

Esto es desde la consola de JavaScript.

Leí que el problema podría deberse a que los campos ocultos tienen el atributo requerido. Ahora el problema es que estamos usando validadores de campos requeridos de formularios web .net, y no el atributo requerido html5.

Parece aleatorio quién recibe este error. ¿Hay alguien que conozca una solución para esto?

mp1990 avatar Mar 03 '14 20:03 mp1990
Aceptado

Este problema ocurre en Chrome si un campo de formulario falla en la validación, pero debido a que el control no válido respectivo no se puede enfocar, el intento del navegador de mostrar el mensaje "Complete este campo" junto a él también falla.

Es posible que no se pueda enfocar un control de formulario en el momento en que se activa la validación por varias razones. Los dos escenarios que se describen a continuación son las causas más destacadas:

  • El campo es irrelevante según el contexto actual de la lógica empresarial. En tal escenario, el control respectivo debe deshabilitarse o eliminarse del DOM o no marcarse con el requiredatributo en ese punto.

  • La validación prematura puede ocurrir debido a que un usuario presiona la tecla ENTER en una entrada. O un usuario que hace clic en un botón/control de entrada en el formulario que no ha definido typecorrectamente el atributo del control. Si el atributo de tipo de un botón no está configurado en button, Chrome (o cualquier otro navegador) realiza una validación cada vez que se hace clic en el botón porque submites el valor predeterminado del atributo de un botón type.

Para resolver el problema, si tiene un botón en su página que hace algo más que enviar o restablecer , recuerde siempre hacer esto: <button type="button">.

Igwe Kalu avatar Feb 05 '2015 09:02 Igwe Kalu

Agregar un novalidateatributo al formulario ayudará a:

<form name="myform" novalidate>
user2909164 avatar Mar 03 '2014 13:03 user2909164

En su form, es posible que haya ocultado inputel requiredatributo:

  • <input type="hidden" required />
  • <input type="file" required style="display: none;"/>

No formpueden centrarse en esos elementos, debe eliminarlos requiredde todas las entradas ocultas o implementar una función de validación en javascript para manejarlos si realmente necesita una entrada oculta.

Ankit Sharma avatar Apr 22 '2014 09:04 Ankit Sharma