Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > Dojo
Dojo Forum d'entraide sur le framework Dojo
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/01/2012, 00h24   #1
Membre du Club
 
Homme
Étudiant
Inscription : mars 2011
Messages : 136
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2011
Messages : 136
Points : 51
Points : 51
Par défaut Dijit.form.Form + dijit.form.Button = envoi impossible ?

J'ai le code suivant pour "widgetiser" tous mes formulaires


Code javascript :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
require(["dijit/form/Form", "dijit/form/TextBox", "dijit/form/CheckBox", "dijit/form/Button"], function(form, textBox, checkBox, button){
      dojo.query("form").forEach(function(formulaire){
        new form({
          method: formulaire.method,
          action: formulaire.action,
          onSubmit: function(e){
            console.log(e.target);
          }
        }, formulaire);
      });
      dojo.query("input[type='text'], textarea, input[type='email'], input[type='password']").forEach(function(input){
        new textBox({}, input);
      });
      dojo.query("checkbox").forEach(function(checkbox){
        new checkBox({
          checked: false
        }, checkbox);
      });
      dojo.query("button, input[type='submit']").forEach(function(but){
        new button({
          label: but.value
        }, but);
      });
    });

Le probleme c'est que maintenant les boutons ou les input submit ne provoque plus l'envoie du formulaire. j'ai essayé d'adapter le code de cette page pour avoir un javascript détaché du code html (je code en rails côté serveur et je veux absolument que tout soit àa sa place).
ernestrenan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 10h37   #2
Expert Confirmé
 
Avatar de emmanuel.remy
 
Emmanuel REMY
Inscription : novembre 2005
Messages : 2 844
Détails du profil
Informations personnelles :
Nom : Emmanuel REMY
Âge : 43

Informations forums :
Inscription : novembre 2005
Messages : 2 844
Points : 3 589
Points : 3 589
Salut,

Tu doit préciser que ton bouton est de type submit:
Code :
1
2
3
4
5
6
7
dojo.query("button, input[type='submit']").forEach(function(but){
        new button({
          label: but.value,
          type:"submit"
        }, but);
      });
C'est le fait qu'il soit de ce type qui déclenche le submit du dijit.form.Form

ERE
__________________
Quand une tête pense seule, elle devient folle.
emmanuel.remy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 12h04   #3
Membre du Club
 
Homme
Étudiant
Inscription : mars 2011
Messages : 136
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2011
Messages : 136
Points : 51
Points : 51
Merci je le déclarais déjà dans mon tag html mais visiblement ce n'est pas suffisant.
ernestrenan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 14h13   #4
Expert Confirmé
 
Avatar de emmanuel.remy
 
Emmanuel REMY
Inscription : novembre 2005
Messages : 2 844
Détails du profil
Informations personnelles :
Nom : Emmanuel REMY
Âge : 43

Informations forums :
Inscription : novembre 2005
Messages : 2 844
Points : 3 589
Points : 3 589
Les attributs de ton input ne sont pas mixés avec le widget que tu crées. Quand tu fais
Code :
1
2
3
4
5
 
new button({
          label: but.value,
          type:"submit"
        }, but);
, "but" va être remplacé par le template du bouton généré par dijit.

ERE
__________________
Quand une tête pense seule, elle devient folle.
emmanuel.remy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h09.


 
 
 
 
Partenaires

Hébergement Web