1 votes

Comment faire en sorte que la fonction se déclenche lorsque le formulaire sans bouton est soumis ?

J'ai une page qui contient de nombreux formulaires (1 à 200). Aucun de ces formulaires n'a de bouton et ils sont construits par programme. J'utilise jquery pour soumettre tous les formulaires qui sont cochés.

   function FakeName()
   {

           $("input:checked").parent("form").submit();

   }

Mes formulaires se présentent comme suit :

            <form name="FakeForm<%=i%>" action="javascript:void%200" onSubmit="processRow(<%=i%>)" method="post" style="margin:0px;">
                <input type="checkbox" name="FakeNameCheck" value="FakeNameCheck"/>
                <input type="hidden" name="FakeNum" value="<%= FakeNum%>"/>
                <input type="hidden" name="FakeId" value="<%=FakeIdr%>"/>
                <input type="hidden" name="FakeAmt" value="<%=FakeAmount%>"/>
                <input type="hidden" name="FakeTrans" value="FakeTrans"/>
            </form>

Note : l'action est réglée sur "javascript:void%200" de sorte qu'elle renvoie à une fausse page. Je veux gérer mon propre affichage dans processRow.

OnSubmit n'est jamais appelé et donc ProcessRow n'est jamais appelé.

Bien entendu, tous les noms des fonctions et des variables ont été modifiés pour protéger leur identité :D

Comment puis-je faire en sorte qu'une fonction dans chaque formulaire se déclenche lorsque j'appelle la fonction submit par programme.

2voto

Gareth Points 42402

En onsubmit n'est délibérément pas déclenché lorsque vous soumettez le formulaire par programme. Cela permet d'éviter une récursion infinie si un gestionnaire d'événement entraîne un nouveau déclenchement de l'événement (et donc un nouvel appel au gestionnaire d'événement).

Cependant, vous pouvez bien sûr appeler la fonction processRow() à la place de la fonction .submit() appel.

Il est possible d'avoir des entrées en dehors des formulaires. Une école de pensée veut qu'un <form> ne devrait pas être un <form> s'il n'est pas destiné à être soumis au serveur via HTML.

0voto

Rakesh Pai Points 9905

Levez les yeux dispatchEvent et son équivalent événement d'incendie . Ce n'est pas la chose la plus facile au monde à utiliser, mais je pense que c'est ce que vous recherchez.

Je suis surpris qu'il n'existe pas de bibliothèque permettant de résoudre facilement ce problème. Prototype (celui que j'ai le plus utilisé) est le plus proche avec une méthode .fire() sur les éléments.

0voto

Brian G Points 8580

Il semble que je puisse le faire :

<form name="FakeForm<%=i%>" action="javascript:processRow(<%=i%>)" method="post" style="margin:0px;">
                                <input type="checkbox" name="FakeNameCheck" value="FakeNameCheck"/>
                                <input type="hidden" name="FakeNum" value="<%= FakeNum%>"/>
                                <input type="hidden" name="FakeId" value="<%=FakeIdr%>"/>
                                <input type="hidden" name="FakeAmt" value="<%=FakeAmount%>"/>
                                <input type="hidden" name="FakeTrans" value="FakeTrans"/>
                        </form>

Y a-t-il des inconvénients à cela ?

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