montre ton code ...
Version imprimable
montre ton code ...
Le voilà :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 if(document.formdept) { var str = document.formdept.depart.value; var strim=str.replace(/[^a-z]/gi, ''); $.ajax({ type: "POST", url: "validDept.php?id=depart", data: {"term":document.getElementById('depart').value}, success: function(term){ window['trouve']=term; alert(window['trouve']); }}); if(strim=="" || window['trouve']=="false") { alert("Veuillez saisir un nom de DEPARTEMENT valide"); return false; } else if (formdept.checkbtm.checked==false && formdept.checkbts.checked==false && formdept.checkbta.checked==false) { alert("Veuillez cocher une durée"); return false; } else return true; }
heu ...
le reste n'est pas dans le callback ... donc faut pas s'etonner !Code:
1
2
3
4 success: function(term){ window['trouve']=term; alert(window['trouve']); }});
Mais je ne peux pas passer tout le reste de mon code dans le callback ??
ben si ...
ou alors appelle une fonction ...
J'ai essayé en déplaçant mon code dans le callback mais sa ne marche pas. Je vais essayer de passer par une fonction
Je n'arrive pas à passer une fonction à l'intérieur de mon success. J'ai essayé cela mais sans résultat :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 function Valid() { if(document.formdept) { var str = document.formdept.depart.value; var strim=str.replace(/[^a-z]/gi, ''); $.ajax({ type: "POST", url: "validDept.php?id=depart", data: {"term":document.getElementById('depart').value}, success: function(term){ window['trouve']=term; ValidTotal(term,strim); }}); } function ValidTotal(term, strim) { if(strim=="" || window['trouve']=="false") { alert("Veuillez saisir un nom de DEPARTEMENT valide"); return false; } else if (formdept.checkbtm.checked==false && formdept.checkbts.checked==false && formdept.checkbta.checked==false) { alert("Veuillez cocher une durée"); return false; } else return true; } }
tu n'as plus besoin de variable globale ..
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 function Valid() { if(document.formdept) { var str = document.formdept.depart.value; var strim=str.replace(/[^a-z]/gi, ''); $.ajax({ type: "POST", url: "validDept.php?id=depart", data: {"term":document.getElementById('depart').value}, success: function(term){ ValidTotal(term,strim); } }); } function ValidTotal(a, b) { if(b=="" || a =="false") { alert("Veuillez saisir un nom de DEPARTEMENT valide"); return false; } else if (formdept.checkbtm.checked==false && formdept.checkbts.checked==false && formdept.checkbta.checked==false) { alert("Veuillez cocher une durée"); return false; } else return true; } }
J'ai essayé ton code mais cela ne marche pas. Aucune de mes conditions n'est testé :?
as tu testé les valeurs de a et b dans la fonction ?
J'ai testé dans ValidTotal(a,b):mais rien ne s'affiche.Code:alert(a);alert(b);
New POST: Rien ne s'affiche sous Firefox mais les valeurs s'affiche bien sous IE
commence par mettre de l'ordre dans ton code ...
tu utilises jquery ...
pareil pour tesCode:data: {"term":$('#depart').val()},
etcCode:var str = document.formdept.depart.value;
Il faut que je remplace tous les .value par .val() ?
et pour etre coherant tous les documents. par $(...)
Pour mon formulaire formdept, est-ce que ça s'écrit bien comme cela ?
Code:
1
2
3 if($('#formdept') { var str = $('#formdept.depart').val();
il n'a pas d'id ton input ?
montre le html de l'input ...
Il n'en avait pas. J'ai donc mis formdept comme id de mon formulaire.
depart est l'id de mon input dans mon formulaire formdept
Bonjour,
Vous n'êtes pas obligé de passer par le formulaire si votre input a un id :
Code:$('#depart')
D'accord. Mon code ne passe toujours pas dans ma fonction ValidTotal(a,b)
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 if($('#formdept')) { var str = $('#depart').val(); var strim=str.replace(/[^a-z]/gi, ''); $.ajax({ type: "POST", url: "Config/PHP/Validator.php?id=depart", data: {"term":$('#depart').val()}, success: function(term){ ValidTotal(term, strim); } }); } function ValidTotal(a, b) { alert(a);alert(b); if(b=="" || a=="false") { alert("Veuillez saisir un nom de DEPARTEMENT valide"); return false; } else if (formdept.checkbtm.checked==false && formdept.checkbts.checked==false && formdept.checkbta.checked==false) { alert("Veuillez cocher une durée"); return false; } else return true; }
La fonction de rappel liée à success est appelée automatiquement par jQuery et ce n'est pas toi qui définit les paramètres qui lui sont passés.Code:success: function(term, strim){...}
Donc dans ton code, tu réaffectes la variable strim avec une valeur qui n'est pas celle que tu crois.
fonctionnera mieux !Code:
1
2
3 success: function(term){ ValidTotal(term); }