800 votes

Un contrôle de formulaire non valide avec nom = ' ' n’est pas actif

J'ai un problème aigu sur mon site. Dans Google Chrome, certains clients ne sont pas en mesure de procéder à ma page de paiement. Lorsque vous essayez d'envoyer un formulaire, j'obtiens cette erreur:

An invalid form control with name='' is not focusable.

C'est à partir de la console JavaScript.

J'ai lu que le problème pourrait être dû à des champs cachés ayant l'attribut obligatoire. Maintenant, le problème, c'est que nous utilisons .net webforms champ obligatoire validateurs, et pas le html5 attribut nécessaire.

Il semble aléatoire qui obtient cette erreur. Est-ce que quelqu'un connait une solution pour cela?

392voto

user2909164 Points 366

Ajout d’un `` aidera à l’attribut de la forme :

290voto

Ankit Sharma Points 594

Dans votre formulaire, vous pourriez avoir caché entrée ayant nécessaire attribut.

Donc forme ne peut se concentrer sur cet élément, vous devrez supprimer `` de tous cachés entrées.

39voto

Horatio Alderaan Points 1635

Dans le cas où quelqu'un d'autre a ce problème, j'ai vécu la même chose. Tel que discuté dans les commentaires, c'est grâce au navigateur de tenter de valider les champs cachés. Il a été de trouver des champs vides dans la forme et essayer de se concentrer sur eux, mais parce qu'ils ont été mis à l' display:none;, il ne le pouvait pas. D'où l'erreur.

J'ai été en mesure de le résoudre en utilisant quelque chose de similaire à ceci:

$("body").on("submit", ".myForm", function(evt) {

    // Disable things that we don't want to validate.
    $(["input:hidden, textarea:hidden, select:hidden"]).attr("disabled", true);

    // If HTML5 Validation is available let it run. Otherwise prevent default.
    if (this.el.checkValidity && !this.el.checkValidity()) {
        // Re-enable things that we previously disabled.
        $(["input:hidden, textarea:hidden, select:hidden"]).attr("disabled", false);
        return true;
    }
    evt.preventDefault();

    // Re-enable things that we previously disabled.
    $(["input:hidden, textarea:hidden, select:hidden"]).attr("disabled", false);

    // Whatever other form processing stuff goes here.
});

Aussi, c'est peut-être un doublon de "non Valide forme de contrôle" que dans Google Chrome

3voto

robert Points 249

Si vous avez le code comme celui-ci va montrer ce message

3voto

utkarshk Points 36

Essayez de .removeAttribute("required") ; pour les éléments qui sont cachés au moment du chargement de la fenêtre. comme il est fort probable que l’élément en question est marqué cachés à cause de javascript (onglets formulaires) ex.

Cela devrait faire la tâche.

Il a travaillé pour me.... a bientôt

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X