Fonction qui marche une fois, pas deux. [JS] - HTML/CSS - Programmation
Marsh Posté le 20-03-2004 à 11:15:26
function Controle_Pers()
{
if(
document.modifier_pers.nom.value=='' ||
document.modifier_pers.prenom.value=='' ||
document.modifier_pers.naissance.value=='' ||
document.modifier_pers.nat.value=='' ||
document.modifier_pers.biographie.value==''){
alert('Un ou plusieurs champs obligatoires n\'ont pas été remplis');
document.modifier_pers.nom.focus();
}else{
if(Verif_Date(document.modifier_pers.naissance.value) == true){
}if (document.modifier_pers.mort.value == ''){
alert ('submit 1');
alert (Verif_Date(document.modifier_pers.naissance.value));
document.modifier_pers.submit();
}else if (Verif_Date(document.modifier_pers.mort.value) == true){
alert ('submit 2');
document.modifier_pers.submit();
}
}
}
T'as une accolade en trop (je l'ai mise en gras)
Sinon pour optimiser un peu les if/else je ferais ça :
Code :
|
PS : je pense d'après ton code que tu dois gérer l'événement onclick et pas onsubmit du formulaire
il faudrait faire comme ça
<form onsubmit="return Controle_Pers(this)">
et un input type= "sumbit" et pas un input type="button"
avec cette fonction Controle_Pers() :
Code :
|
Marsh Posté le 20-03-2004 à 11:34:06
Merci
En effet, j'utilise le onclick, quel est l'interet de passer en onsubmit ? Maintenant tout roule
Marsh Posté le 20-03-2004 à 11:05:29
Alors voila, j'ai fais une fonction me servant a verifier une date saisie. Lorsque je clique une fois pour valider la saisie, la fonction bloque l'envoi et affiche une alerte si la date n'est pas valide. MAIS, si je reclique une deuxieme fois apres l'alerte sur le bouton servant a valider la date, ben l'ajout est effectué, meme avec une date fausse. Voila, je vous met les 2 fonctions en cause, mais il semblerait que cela vienne plus de la 1ere, car la 2eme renvoie toujours le bon résultat.
function Controle_Pers()
{
if(
document.modifier_pers.nom.value=='' ||
document.modifier_pers.prenom.value=='' ||
document.modifier_pers.naissance.value=='' ||
document.modifier_pers.nat.value=='' ||
document.modifier_pers.biographie.value==''){
alert('Un ou plusieurs champs obligatoires n\'ont pas été remplis');
document.modifier_pers.nom.focus();
}else{
if(Verif_Date(document.modifier_pers.naissance.value) == true){
}if (document.modifier_pers.mort.value == ''){
alert ('submit 1');
alert (Verif_Date(document.modifier_pers.naissance.value));
document.modifier_pers.submit();
}else if (Verif_Date(document.modifier_pers.mort.value) == true){
alert ('submit 2');
document.modifier_pers.submit();
}
}
}
function Verif_Date(Date_verif){
pos_prem_slash = Date_verif.indexOf("/" );
pos_der_slash = Date_verif.lastIndexOf("/" );
var j = Date_verif.substring(0,pos_prem_slash);
var m = Date_verif.substring( (pos_prem_slash +1), pos_der_slash);
var a = Date_verif.substring( (pos_der_slash +1 ) , Date_verif.length);
var now = new Date();
var jour = now.getDate();
var mois = now.getMonth()+1;
var annee = now.getYear();
if (((isNaN(j))||(j<1)||(j>31))){
alert ("Le jour saisi n'est pas valide." );
return(false);
}else if( ((isNaN(m))||(m<1)||(m>12))){
alert ("Le mois saisi n'est pas valide." );
return(false);
}else if(isNaN(a) || (a>annee) || (a.length != 4)){
alert ("La date doit être antérieure a la date d'aujourd'hui, vérifiez l\'annee." );
return(false);
}else if( (a==annee) && (m>mois)){
alert ("La date doit être antérieure a la date d'aujourd'hui, vérifiez le mois." );
return(false);
}else if( (a==annee) && (m==mois) && (j>jour) ){
alert ("La date doit être antérieure a la date d'aujourd'hui, vérifiez le jour." );
return(false);
}else{
return(true);
}
}