Un control de formulario no válido con nombre='' no se puede enfocar
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?
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
required
atributo 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
type
correctamente el atributo del control. Si el atributo de tipo de un botón no está configurado enbutton
, Chrome (o cualquier otro navegador) realiza una validación cada vez que se hace clic en el botón porquesubmit
es el valor predeterminado del atributo de un botóntype
.
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">
.
Agregar un novalidate
atributo al formulario ayudará a:
<form name="myform" novalidate>
En su form
, es posible que haya ocultado input
el required
atributo:
<input type="hidden" required />
<input type="file" required style="display: none;"/>
No form
pueden centrarse en esos elementos, debe eliminarlos required
de todas las entradas ocultas o implementar una función de validación en javascript para manejarlos si realmente necesita una entrada oculta.