Accueil > Forum > > > > mon formulaire ne supporte pas la méthode submit()
mon formulaire ne supporte pas la méthode submit()
vendredi 20 février 2009 à 16:27:08 |
mon formulaire ne supporte pas la méthode submit()

ordiminnie
|
Bonjour, J'ai un formulaire que je soumets à une fonction Check() via "onclick" qui est sur un lien (et non sur un bouton submit > d'ailleurs, y'en a pas du tout sur mon formulaire). Cette fonction vérifie quelques input et insère des valeurs dans des input caché de ce même formulaire. Puis il envoie ce formulaire. Check() s'execute bien jusqu'au moment d'envoyer où j'ai la fameuse erreur : JScript object doesn't support this property or method (je travaille en asp.net mais j'ai utilisée un formulaire html classique) Sur mozilla, la page est rechargée mais la function Check() n'est pas appelée. Je n'ai pas donné une action à mon formulaire dans sa balise mais bien en javascript. Est-ce que le fait que je n'ai pas de bouton "submit" dans mon formulaire puisse générer cette erreur ? Un conflit avec ActiveX ? Une idée ? merci de votre aide ! Voilà mon code (épuré) [code] var sexe; function Check() { var sexeF = document.getElementById('f').checked; var sexeM = document.getElementById('m').checked; if (sexeF == true) { sexe = 'f'; } else if (sexeM == true) { sexe = 'm'; } else { sexe = 'unknown'; } document.getElementById('sexe').value = sexe; myForm = document.getElementById('contactForm'); myForm.action = '#'; myForm.submit(); } [/code]
|
|
vendredi 20 février 2009 à 16:46:20 |
Re : mon formulaire ne supporte pas la méthode submit()

Bul3
|
bonjour, ben déjà, 9999 sur 10000 un .submit n'est quasi jamais nécessaire le bouton submit le fait tout seul les contrôles, ici Check(), sont faits dans le on submit du formulaire
là, comme on n'a ni le formulaire, ni ce qui appelle la fonction ça devrait baigner si tout l e rest est ok (?) , même si ce n'est pas la manière standard de faire
n'oublions pas que tu recharges la même page ( action="#" ) et peut-être des erreurs qu'on ne peut pas détecter ( id, name ... ) ? va savoir
Cordialement
|
|
vendredi 20 février 2009 à 17:40:00 |
Re : mon formulaire ne supporte pas la méthode submit()

ordiminnie
|
Merci Bul3,
c'est vrai que ce n'est pas très orthodoxe ma façon de faire.... apparemment, ce serait mieux de laisser un button submit puis de mettre mon check() dans onSubmit() ?
je précise que je suis encore plus compliquée que ça en a l'air puisque comme tu l'as dit je renvoie ce formulaire avec ses nouvelles valeurs à la même page ...pour le traiter encore une fois en code behind (c#). Pourquoi est-ce que je ne fais pas tout en c# ? en fait je dois utiliser une fonction de hash dans mon Check() qui est déjà développé en javascript...
mais bon, je vais modifier mon code comme tu me l'as suggéré. Merci beaucoup de ton aide, jt complètement bloquée !
et voici la fin de mon code (épuré) <form id="contactForm" action="" method="post" name="contactForm"> <fieldset> <legend>CONTACT-US</legend> <p class="sexe"> <MXP:DictionnaryControl Reference="H1Lab1" runat="server" ID="H1Lab1" /> <input type="radio" name="Rsexe" id="f" value="f" /> <MXP:DictionnaryControl Reference="H1Lab2" runat="server" ID="H1Lab2" /> <input type="radio" name="Rsexe" id="m" value="m" /> </p> <br /> <p class="moreInfo"><label>Nombre d'employe</label> <input type="text" name="TBnbr" id="TBnbr" size="8"/></p> <p class="moreInfo"><label>Date à laquelle le systeme doit être en place</label><br /><input type="text" name="TBday" id="TBday" value="dd" size="1"/> - <input type="text" name="TBmonth" id="TBmonth" value="mm" size="1"/> - <input type="text" name="TByear" value="yy" id="TByear" size="1"/></p> <p class="moreInfo"><label>Je veux une demo</label><input name="CHdemo" id="CHdemo" type="checkbox" /></p> <p><input type="hidden" value="" name="sexe" /></p> <p><input type="hidden" value="" name="demo" /></p> <p><input type="hidden" value="" name="code" /></p> <p><a href="" onclick="javascript:Check();" id="TBsend"> <MXP:DictionnaryControl Reference="H1Lab17" runat="server" ID="H1Lab17" /></a></p> </fieldset> </form>
|
|
vendredi 20 février 2009 à 18:05:51 |
Re : mon formulaire ne supporte pas la méthode submit()

ordiminnie
|
euh.....c'est où que je peux intercepter l'évènement onSubmit et le modifier?
|
|
samedi 21 février 2009 à 09:32:17 |
Re : mon formulaire ne supporte pas la méthode submit()

Bul3
|
<form id="contactForm" action="" method="get" name="contactForm" onsubmit="return(Check());" > .... <input type="submit" /> </form>
si la fonction Check retourne true, le formulaire sera envoyé, si false : pas d'envoi j'ai mis method="get", car en javascript seul get est gérable
et il faudrait enlever <a href="" onclick="javascript:Check();" id="TBsend"> <MXP:DictionnaryControl Reference="H1Lab17" runat="server" ID="H1Lab17" /></a></ car en plus, comme c'est un lien, la page sera rechargée encore une fois ! ce qui fait beaucoup pour un seul formulaire.
|
|
mercredi 4 mars 2009 à 10:52:59 |
Re : mon formulaire ne supporte pas la méthode submit()

ordiminnie
|
Merci à toi bul3 ! J'étais passé sur un autre projet en urgence, mais je suis bien de retour...J'espère que tu ne m'as pas oublié entre temps.
J'ai bien appliqué tes conseils mais ça se complique. comportement que je veux obtenir : En fait, une fois que mon formulaire est envoyé, la page est rechargée, les données sont à nouveaux traitées en code behind et un mail est envoyé. Si tout se passe bien, le mail est envoyé et la page n'affiche plus qu'un message de remerciement (et non plus le formulaire).
Comportement que j'ai après tes modifications : quand j'appuie sur send, check() est bien appelée, la page est rechargée, le mail envoyé et le messaage de remerciement s'affiche. Seulement, à partir de maintenant, quand je vais sur cette page, c'est toujours le message de remerciement et plus le formulaire. J'ai donc mis mon code behind dans un IsPostBack (variable d'asp.net qui stipule si on est dans un postback ou pas). Et maintenant, mon formulaire s'affiche mais quand j'appuie sur send, Check() n'est plus appelée....
Je n'ai pas d'idée... C'est un vrai casse tête chinois !!
Au passage, j'ai vu sur ton site que tu pratiquais beaucoup JS, tu pourrais me conseiller un livre ? J'ai un oeil sur "Javascript: la référence" (avec un rhinocéros sur la couverture) qu'est-ce que t'en penses ?
Voici mon code JS: script type="text/javascript" language="javascript"> var sexeAnswer; function CheckForm() { alert('yo'); var sexeF = document.getElementById('f').checked; var sexeM = document.getElementById('m').checked; if (sexeF == true) { sexeAnswer = 'f'; } else if (sexeM == true) { sexeAnswer = 'm'; } else { sexeAnswer = 'unknown'; }
var demoChecked = document.getElementById('CHdemo').checked; var cryptedCode = ''; if (demoChecked) { var dateNow = new Date(); var myDate = dateNow.getDate() + dateNow.getMonth() + dateNow.getFullYear(); cryptedCode = calcMD5(myDate); }
document.getElementById('demo').value = demoChecked; document.getElementById('code').value = cryptedCode; document.getElementById('sexe').value = sexeAnswer; return true; }
</script>
Mon formulaire <form id="contactForm" action="#" method="get" name="contactForm" onsubmit="return(CheckForm());"> <fieldset> <legend>CONTACT-US</legend> <p class="sexe"> <MXP:DictionnaryControl Reference="H1Lab1" runat="server" ID="H1Lab1" /> <input type="radio" name="Rsexe" id="f" value="f" /> <MXP:DictionnaryControl Reference="H1Lab2" runat="server" ID="H1Lab2" /> <input type="radio" name="Rsexe" id="m" value="m" /> </p> <br /> <p class="moreInfo"><label>Nombre d'employe</label> <input type="text" name="TBnbr" id="TBnbr" size="8"/></p> <p class="moreInfo"><label>Date à laquelle le systeme doit être en place</label><br /><input type="text" name="TBday" id="TBday" value="dd" size="1"/> - <input type="text" name="TBmonth" id="TBmonth" value="mm" size="1"/> - <input type="text" name="TByear" value="yy" id="TByear" size="1"/></p> <p class="moreInfo"><label>Je veux une demo</label><input name="CHdemo" id="CHdemo" type="checkbox" /></p> <p><input type="hidden" value="" name="sexe" /></p> <p><input type="hidden" value="" name="demo" /></p> <p><input type="hidden" value="" name="code" /></p> <input type="submit" value="send"/> </fieldset> </form>
Merci !
|
|
mercredi 4 mars 2009 à 11:18:18 |
Re : mon formulaire ne supporte pas la méthode submit()

Bul3
|
>>Seulement, à partir de maintenant, quand je vais sur cette page, >>c'est toujours le message de remerciement et plus le formulaire
pas compris... navré
de ce que je vois, tu as un formulaire envoyé systématiquement si on clique sur le bouton <send> ( puique return true quoiqu'il arrive ) avec un message d'alerte : 'yo' ce formulaire ne fait que recharger la même page ( action="#" )
|
|
mercredi 4 mars 2009 à 11:26:39 |
Re : mon formulaire ne supporte pas la méthode submit()

Bul3
|
>>tu pourrais me conseiller un livre ? oulah... je n'ai de conseils à donner à personne moi ! >>"Javascript: la référence" (avec un rhinocéros sur la couverture) >>qu'est-ce que t'en penses ? aucune idée... jamais lu aucun bouquin sur javascript ça se voit diront certains ! je me débrouille maladroitement avec des tutos ici et là, une doc comme selfHTML ( gratis, téléchargeable, en français... ) et CodesSources essentiellement
|
|
mercredi 4 mars 2009 à 12:31:54 |
Re : mon formulaire ne supporte pas la méthode submit()

ordiminnie
|
>>aucune idée... jamais lu aucun bouquin sur javascript. ça se voit diront certains ! Ben moi je trouve que tu te débrouilles bien quand même ! Je vais finir par me dire que je suis vraiment nulle !
Sinon, en ce qui concerne mon formulaire, tu l'as bien compris : >> de ce que je vois, tu as un formulaire envoyé systématiquement si on clique sur le bouton <send> ( puique return true quoiqu'il arrive ) avec un message d'alerte : 'yo' ce formulaire ne fait que recharger la même page ( action="#" )
Dès que j'ai écrit et testé ton code, le formulaire a eu ce comportement (nikel) mais depuis, quand ma page est chargée, le code behind (que tu ne vois pas) se déclenche directement, envoie un mail et cache le formulaire pour n'afficher que le message de remerciement. (or le code behind ne devrait se déclencher que si j'ai rempli et envoyé le formulaire). J'AI NEUTRALISE CE PROBLEME en mettant if (IsPostBack). Maintenant : j'affiche la page avec le formulaire, je clique sur send, la page est rechargée maisChekForm() n'est pas appelé (pas d'alert('yo')). Comment ça se fait ? C'est ça mon problème...
Tiens, je te mets le code behind (documenté) : (c'est en c#) protected void Page_Load(object sender, EventArgs e) //chargement de la page { // je cache les deux div de messages de remerciement divMsgSend.Visible = false; bool msgSend = false;
divMsgSendDemo.Visible = false; bool msgSendDemo = false; if (IsPostBack) //ne doit se déclencher que si cette page est rechargée (pas la première fois) { //je teste si j'ai des variables en querystring (qui proviennent de l'envoie de mon formulaire) if (Request.ServerVariables["request_method"] == "GET") { // je récupère les valeurs de mes variables string name = Request.Form["TBname"]; string firstname = Request.Form["TBfirstname"]; string function = Request.Form["TBfunction"]; string compagny = Request.Form["TBcompagny"]; string ligne1 = Request.Form["TBligne1"]; string ligne2 = Request.Form["TBligne2"]; string ligne3 = Request.Form["TBligne3"]; string country = Request.Form["TBcountry"]; string vat = Request.Form["TBvat"]; string phone = Request.Form["TBphone"]; string fax = Request.Form["TBfax"]; string email = Request.Form["TBemail"]; string nbr = Request.Form["TBnbr"]; string expense = Request.Form["TBexpense"]; string demo = Request.Form["demo"]; string code = Request.Form["code"]; string sexe = Request.Form["sexe"];
string day = Request.Form["TBday"]; string month = Request.Form["TBmonth"]; string year = Request.Form["TByear"];
string date = String.Format("{0}/{1}/{2}", day, month, year);
string dataContact = ""; dataContact += sexe; dataContact += name; dataContact += firstname; dataContact += function; dataContact += compagny; dataContact += ligne1; dataContact += ligne2; dataContact += ligne3; dataContact += country; dataContact += vat; dataContact += phone; dataContact += fax; dataContact += email; dataContact += "--------------------------------------------------------------"; dataContact += nbr; dataContact += expense; dataContact += demo; dataContact += date;
// j'envoie les données du formulaire dans un mail SmtpClient mySmtp = new SmtpClient("relay.skynet.be"); mySmtp.Send("info@mobilexpense.com", "mm@mobilexpense.com", "INFORMATION REQUEST - MobileXpense WEB SITE", dataContact); msgSend = true;
if (demo == "true") //si la personne a coche 'oui je veux une demo' { string dataTransfered = "Thanks for your interest in MobileXpense. Follow this link (or copy/paste it in your browser) for watching our video : http://www.mobilexpense.com/en/Video.aspx Note : this link is only avalaible today, until midnight."; mySmtp.Send("info@mobilexpense.com", email, "Video Demonstration of MobileXpense", dataTransfered); msgSendDemo = true; }
} //j'affiche le message de remerciment approprié if ((msgSend == true) && (msgSendDemo == false)) { divMsgSend.Visible = true; divMsgSend.Style.Add("margin-bottom", "15px"); contactFormWrapper.Visible = false; } else if ((msgSend == true) && (msgSendDemo == true)) { divMsgSendDemo.Visible = true; divMsgSendDemo.Style.Add("margin-bottom", "15px"); contactFormWrapper.Visible = false; } } }
Merci beaucoup de ton attention et de ton aide, toute remarque est bonne à prendre ! J'espère que je suis plus claire cette fois.
|
|
mercredi 4 mars 2009 à 12:49:59 |
Re : mon formulaire ne supporte pas la méthode submit()

Bul3
|
>>c'est en c# navré.. je connais très très mal ( pire que le js ) et trop peu pour être d'une aide quelconque
>>la page est rechargée maisChekForm() n'est pas appelé (pas d'alert('yo')). euh... si tu essayes uniquement avec le js et le html donné, ça doit fonctionner ( à chaque appui sur <send> ) ça fonctionne d'ailleurs chez moi ( ie, ff, ... )
maintenant avec les interactions du c# ?? peut-être creuser de ce coté ? ( sûrement ! )
@+
|
|
Cette discussion est classée dans : formulaire, document, submit, check, sexe
Répondre à ce message
Sujets en rapport avec ce message
problème avec bouton + help [ par emmanuel9 ]
boujour j'ai un bouton de type = "button" et je voudrais dans une fonction javascript forcer son submit. J'ai essayé :document.forms["formulaire"].mon
envoie d'un formulaire en utilisant un submit automatique [ par Xave21 ]
Bonjour tout le monde.Bon vu que je pense que mon titre n'est pas super super clair je vais vous exlpiquer ce que je veux faire.donc je travail sur un
Vérification d'un formulaire [ par davidgmmartin ]
Bonjour,Je souhaite vérifier qu'un utilisateur a bien renseigné tous les champs d'un formulaire.Pour les champs texte, pas de souci. En revanche, je n
passer une variable dans document.forms.formName.submit(); [ par skmancuso ]
Bonjour,Je suis un peu mauvais en javascript d'où ma question relativement simple.Pour envoyer un formulaire j'envoie le code suivant:document.forms.f
probleme submit onsubmit [ par pefm ]
Voila, je débute en php et j'ai un petit soucis surement tout simple avec un formulaire et un onsubmit.Je ne comprends pas pourquoi ma fonction contro
Validation formulaire [ par shaft107 ]
slt à tous, j'ai deux boutons qui font deux validations différentes de mon formulaire, le pb que je rencontre est qu'une fois que je clique sur le pre
envoi d'1 formulaire sans submit [ par mostro ]
Bonjour à tous,voilà, je voudrais envoyer un formulaire déjà rempli au chargement de ma page mais sans validation (submit). Peut on créer un ptit scri
preview d'un formulaire [ par netwebzone ]
Bonjour,Je ne sais pas si je suis dans le bon forum, parce que j'utilise PHP et javascript et je ne sais pas ou est vraiment le problème... je m'expli
plusieur submit dans un formulaire [ par tenrod ]
bonjour a tous!j'aimerai savoir comment faire pour changer l'action d'un formulaire en fonction du bouton ke l'on a appuyé.je sais kil me faut des inp
remplacement submit=>button [ par Hades51 ]
Bonjour,Afin d'éviter les appuis "accidentels" sur la touche "entrée" dans un formulaire j'ai remplacé tous mes bouttons "submit" par des boutton "but
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|