8
votes

La forme ne sera pas soumise si .ReMove () est utilisé?

Je suis en train de vous embêter avec Firefox, JQuery ou les deux. OS est Windows 7, Firefox est la version 4.0.1 et JQuery est comprise entre 1,5 et 1,6.

Fondamentalement, j'ai une forme avec une touche dans, à laquelle un événement de clic est joint via jQuery qui supprime le parent le plus proche du bouton div . Tout cela fonctionne merveilleusement.

Maintenant, le problème vient lorsque vous essayez de soumettre le formulaire après avoir effectué l'action susmentionnée. Chrome, IE, Opera et Safari soumettent le formulaire bien. Firefox d'autre part refuse de soumettre le formulaire du tout.

J'ai même essayé $ ("formulaire"). Soumettre (); en Firebug en vain.

Voici un test sur jsfiddle , cliquez simplement sur le bouton - et ensuite Soumettre dans Firefox pour voir ce que je veux dire.

Toute aide sur la question est très appréciée!

EDIT: Je dois être capable de soumettre le formulaire via un événement JavaScript / JQuery attaché à un bouton extérieur du formulaire .


0 commentaires

4 Réponses :


0
votes

Essayez d'utiliser cela à la place:

<!DOCTYPE html>
<head>
    <title>Firefox/jQuery Submit Bug?</title>
</head>
<body>
    <form method="post" action="index.php" id="fform">
        <div>
            <input type="text" name="foo" value="bar" />
            <button name="test">-</button>
        </div>
    <input type="submit" value="submit" />
    </form>
</body>


3 commentaires

Cela ne résout pas le problème, le formulaire ne soumet toujours pas.


Désolé, je n'ai jamais décrit clairement dans ma question, mais je dois être capable de soumettre le formulaire via JavaScript / JQuery et non un bouton d'envoi. Merci quand même.


@Davgothic: L'utilisation de l'entrée de type de soumission ne vous empêche pas de soumettre le formulaire via JS. Si vous appelez $ (formulaire) .Submit () est l'EAXCCT identique à l'action de soumission par défaut appelée lors de la clic sur une entrée de soumission. Si vous avez réellement besoin de remplacer ce qui se passe sur Soumettre, il suffit de désactiver la fonctionnalité par défaut dans votre gestionnaire de change comme $ ('formulaire'). Soumettre (fonction (EVT.PREventDefault (); / * Votre code Soumettre le code ici * /}); .



5
votes

Je n'ai aucune idée pourquoi c'est le cas, mais si vous remplacez:

-

avec:

et utilisez $ ("entrée [nom = test]") au lieu de $ (bouton "[nom = test]") alors il semble fonctionner. < / p>

Vous pouvez voir ce travail dans ce violon .


3 commentaires

Quelqu'un peut-il perdre une lumière pourquoi cela se produit?


Merci d'avoir trouvé cette solution de contournement! J'aimerais aussi entendre les opinions de quiconque pourquoi Firefox se comporte de cette façon?


Je vous en prie. Votre problème m'a intrigué, j'ai passé la dernière demi-heure à essayer de trouver un chemin autour. Il semble que d'autres ont vécu la question, mais il n'y a pas grand chose que je peux en trouver via Google.



9
votes

Je pense avoir la solution finale à ce problème. J'ai passé les deux derniers jours à lutter avec ce comportement étrange et je suis enfin venu accrocher ce fil et Celui-ci qui m'a beaucoup aidé .. =))

L'élément de bouton a un attribut "type" qui est défini par défaut pour "soumettre" Soumettre ' dans presque tous les navigateurs (sauf c.-à-delà).

Le problème semble être lié au fait que nous supprimons le nœud lors du traitement de l'événement de soumission et de briser ainsi l'événement de soumission du formulaire ...

Ajout de type = "bouton" à l'élément de bouton résoudra réellement ce problème.

Voici un exemple de workign Jsfiddle.


2 commentaires

Je confirme que cela fonctionne. J'ai eu exactement le même problème et je me déchirais mes cheveux. Merci !


Je veux juste noter, 2 ans plus tard, Firefox 24.0, le problème persiste. Est ce bug ou quoi?



0
votes

La réponse à "paic_citron" est correcte mais que vous faites le "POST" via AJAX, vous pouvez remplacer ce bouton:

<a href="#" class="bnt btn-warning" name="test">
   <i class="icon-remove icon-white"></i>
</a>


0 commentaires