begin process at 2012 05 29 22:39:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript et le navigateur

 > 

Problème de compatibilité

 > 

Réaction différente de IE à Firefox


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Réaction différente de IE à Firefox

lundi 21 juillet 2008 à 14:56:21 | Réaction différente de IE à Firefox

lteixeir

Bonjour à tous !

Je travaille actuellement sur des champs textes qui doivent vérifier certaines conditions : s'écrire JJ/MM/AAAA ou JJ/MM/AAAA HH:MM ou JJ/MM/AAAA HH:MM:SS.
J'utilise donc une expression régulière associée à du JavaScript pour tester cela sur un évènement onBlur.

Voici l'expression régulière :
var reg = /^(([0-2]\d|[3][0-1])[/]([0]\d|[1][0-2])[/]([1][9]|[2][0])\d{2})$|^(([0-2]\d|[3][0-1])[/]([0]\d|[1][0-2])[/]([1][9]|[2][0])\d{2}\s([0-1]\d|[2][0-3])[:][0-5]\d)$|^(([0-2]\d|[3][0-1])[/]([0]\d|[1][0-2])[/]([1][9]|[2][0])\d{2}\s([0-1]\d|[2][0-3])[:][0-5]\d[:][0-5]\d)$/gi;

La partie principale est celle-ci : ^(([0-2]\d|[3][0-1])[/]([0]\d|[1][0-2])[/]([1][9]|[2][0])\d{2})$ (JJ/MM/AAAA).

Sur IE tout fonctionne parfaitement, sur Firefox, c'est beaucoup plus aléatoire. Lorsque je remplis mon champ texte par "21/10/1998" par exemple et que je quitte mon champ texte, aucune erreur, mais si je refais cette manipulation une 2ème fois, l'alerte que j'ai mis en cas d'erreur s'affiche. :S Aucune erreur ne s'affiche dans la console d'erreur.

D'où cela peut-il venir ? Et surtout, comment régler le problème ?
lundi 21 juillet 2008 à 15:17:42 | Re : Réaction différente de IE à Firefox

bultez

Membre Club


Bonjour,

aucune raison.
même si les différences existent ( doux euphémisme ), pas sur ce que tu donnes

on n'a pas tout ce qu'il faut d'ailleurs pour dire,
mais je suppute un return false qui manquerait ?
tu peux mettre un EXTRAIT du html ( formulaire ... ) ?

enfin... fais nous un exemple qui ne fonctionne pas ! ( 5 lignes !
tout ce qu'il faut mais pas plus  )


                Cordialement            Bul         [mon Site]     [M'écrire]
lundi 21 juillet 2008 à 15:24:37 | Re : Réaction différente de IE à Firefox

lteixeir

Voilà comment je l'utilise :
                            "var reg2 = /^(([0-2]\d|[3][0-1])[/]([0]\d|[1][0-2])[/]([1][9]|[2][0])\d{2})$|^(([0-2]\d|[3][0-1])[/]([0]\d|[1][0-2])[/]([1][9]|[2][0])\d{2}\s([0-1]\d|[2][0-3])[:][0-5]\d)$|^(([0-2]\d|[3][0-1])[/]([0]\d|[1][0-2])[/]([1][9]|[2][0])\d{2}\s([0-1]\d|[2][0-3])[:][0-5]\d[:][0-5]\d)$/gi; // Date et Heure" & vbCrLf & _
                            "   if ( document.getElementById(prefix + texte).value != '' ){" & vbCrLf & _
                            "       if ( !reg2.test(document.getElementById(prefix + texte).value) ){" & vbCrLf & _
                            "           window.alert(alerte);" & vbCrLf & _
                            "           document.getElementById(prefix + texte).value = '';" & vbCrLf & _
                            "           return false;" & vbCrLf & _
                            "       }" & vbCrLf & _
                            "   }" & vbCrLf & _

Comme tu peux le voir, le "return false;" y est...

lundi 21 juillet 2008 à 15:37:58 | Re : Réaction différente de IE à Firefox

bultez

Membre Club
certes..
mais c'est quoi ces "  ? asp ou php ?
et le html ?  et comment on appelle cette fonction ?
et si c'est ok : pas de return false, donc peut-être le formulaire,
s'il existe, est-il soumis....
un extrait de la page html résultante, qui ne fonctionne pas, c'est possible ?

                Cordialement            Bul         [mon Site]     [M'écrire]
lundi 21 juillet 2008 à 15:50:06 | Re : Réaction différente de IE à Firefox

lteixeir

C'est du VB.NET associé à du code ASP.NET.

Je l'appelle de la façon suivante :

CType(e.Item.FindControl("tbValeur1"), TextBox).Attributes.Add("OnBlur", "verifDateEntier('" & Me.constantName & ViewState.Item("lineNumber") & "_" & "','tbValeur1','" & Lng.RES15s033 & "')")

Pourquoi un e.Item.FindControl(), parce que j'utilise un repeater.
Je n'ai pas codé entièrement cette page, je suis juste venue y ajouter les choses nécessaires.

Et voici la fonction entière :

"<script  type=""text/javascript"">function affichage(prefix,val,type) {" & vbCrLf & _
"function verifDateEntier(prefix,texte,alerte){" & vbCrLf & _
"var reg2 = /^(([0-2]\d|[3][0-1])[/]([0]\d|[1][0-2])[/]([1][9]|[2][0])\d{2})$|^(([0-2]\d|[3][0-1])[/]([0]\d|[1][0-2])[/]([1][9]|[2][0])\d{2}\s([0-1]\d|[2][0-3])[:][0-5]\d)$|^(([0-2]\d|[3][0-1])[/]([0]\d|[1][0-2])[/]([1][9]|[2][0])\d{2}\s([0-1]\d|[2][0-3])[:][0-5]\d[:][0-5]\d)$/gi; // Date et Heure" & vbCrLf & _
"   if ( document.getElementById(prefix + texte).value != '' ){" & vbCrLf & _
"       if ( !reg2.test(document.getElementById(prefix + texte).value) ){" & vbCrLf & _
"           window.alert(alerte);" & vbCrLf & _
"           document.getElementById(prefix + texte).value = '';" & vbCrLf & _
"           return false;" & vbCrLf & _
"       }" & vbCrLf & _
"   }" & vbCrLf & _
"}</script>"
lundi 21 juillet 2008 à 16:11:33 | Re : Réaction différente de IE à Firefox

bultez

Membre Club

c'est pas possible ?!?
vbcrlf et le reste c'est du VB + ASp !

la page html résultante avec le champs dans son formulaire svp !

lancer l'application, afficher la source dans le navigateur
ou sauver la page html en faire l'extrait nécessaire !

sinon, moi je ne peux rien que supputer, et ce que je
ferais va fonctionner ! or, pour toi, ça ne marche pas !
ça ne sert donc à rien que je fasse !



                Cordialement            Bul         [mon Site]     [M'écrire]
lundi 21 juillet 2008 à 16:18:18 | Re : Réaction différente de IE à Firefox

lteixeir

<td class="Contenu1" width="300" valign="middle">
 <span id="rptFieldsList__ctl1_lblName">Date d'inscription</span>
 <span id="rptFieldsList__ctl1_lblType" style="Display:none">1</span>
</td>

<td class="Contenu1" width="150" align="center" valign="middle">
 <select name="rptFieldsList:_ctl1:dwnOp" id="rptFieldsList__ctl1_dwnOp" class="form" onChange="affichage('rptFieldsList__ctl1_',this.value,1);">
 <option value="0">---------- Critère ----------</option>
 <option value="1">Renseigné</option>
 <option value="2">Non renseigné</option>
 <option value="5">inférieur strictement à</option>
 <option value="6">supérieur strictement à</option>
 <option selected="selected" value="7">Compris entre</option>
 <option value="10">il y a</option>
 <option value="11">dans</option>
 <option value="12">strictement la date</option>
 <option value="13">date anniversaire</option>
 </select>
</td>

<td class="Contenu1" width="300" valign="middle">
 <span id="rptFieldsList__ctl1_spanVal1" style="DISPLAY:none">
 <input name="rptFieldsList:_ctl1:tbValeur1" type="text" value="15/05/2004 15:00:00" maxlength="500" size="50" id="rptFieldsList__ctl1_tbValeur1" class="form" OnBlur="verifDateEntier('rptFieldsList__ctl1_','tbValeur1','Format correct : JJ/MM/AAAA ou JJ/MM/AAAA HH:MM:SS ou JJ/MM/AAAA HH:MM')" />
 <span id="rptFieldsList__ctl1_spanVal2" style="DISPLAY:none">
 <span id="rptFieldsList__ctl1_lblAnd">
 et
 </span>
 <input name="rptFieldsList:_ctl1:tbValeur2" type="text" value="23/05/2004" maxlength="500" size="50" id="rptFieldsList__ctl1_tbValeur2" class="form" OnBlur="verifDateEntier('rptFieldsList__ctl1_','tbValeur2','Format correct : JJ/MM/AAAA ou JJ/MM/AAAA HH:MM:SS ou JJ/MM/AAAA HH:MM')" />
 </span>
 </span>

 <span id="rptFieldsList__ctl1_spanValDwn" style="DISPLAY:none">
 <select name="rptFieldsList:_ctl1:dwnValeur" id="rptFieldsList__ctl1_dwnValeur" class="form">
 </select>
</span>

ETC...
lundi 21 juillet 2008 à 16:33:07 | Re : Réaction différente de IE à Firefox

bultez

Membre Club


en simplifiant :


<body>
<script  type="text/javascript">
function verifDateEntier(prefix,texte,alerte)
{
var reg2 = /^(([0-2]\d|[3][0-1])[/]([0]\d|[1][0-2])[/]([1][9]|[2][0])\d{2})$|^(([0-2]\d|[3][0-1])[/]([0]\d|[1][0-2])[/]([1][9]|[2][0])\d{2}\s([0-1]\d|[2][0-3])[:][0-5]\d)$|^(([0-2]\d|[3][0-1])[/]([0]\d|[1][0-2])[/]([1][9]|[2][0])\d{2}\s([0-1]\d|[2][0-3])[:][0-5]\d[:][0-5]\d)$/gi;

   if ( document.getElementById(prefix + texte).value != '' )
    {
       if ( !reg2.test(document.getElementById(prefix + texte).value) )
         {
           window.alert(alerte);
           //document.getElementById(prefix + texte).value = '';   pour les tests
           return false;
       }
         alert("ok");      // pour les tests
         return true;   
   }
}
</script>


 <input name="rptFieldsList:_ctl1:tbValeur1" type="text" value="15/05/2004 15:00:00" maxlength="500" size="50" id="rptFieldsList__ctl1_tbValeur1" class="form" OnBlur="verifDateEntier('rptFieldsList__ctl1_','tbValeur1','Format correct : JJ/MM/AAAA ou JJ/MM/AAAA HH:MM:SS ou JJ/MM/AAAA HH:MM')" />

 </body>
 
et ça baigne et pour FF, et pour IE....
il n'y a pas de formulaire dans lequel est inclus le champs ?
sinon, "l'erreur est ailleurs"


mais pas sûr que des " ne manque pas ou ne sont pas en trop...
( j'ai fait manuellement ! puisque tu ne nous donnes pas la fonction résultante ! )


                Cordialement            Bul         [mon Site]     [M'écrire]
lundi 21 juillet 2008 à 17:05:49 | Re : Réaction différente de IE à Firefox

lteixeir

La fonction résultante est :

function verifDateEntier(prefix,texte,alerte){
var reg = new RegExp('^([0]?[1-9]|[1|2][0-9]|[3][0|1])[/]([0]?[1-9]|[1][0-2])[/]([0-9]{4}|[0-9]{2})$','gi'); // Que pour la date
var reg2 = /^(([0-2]\d|[3][0-1])[/]([0]\d|[1][0-2])[/]([1][9]|[2][0])\d{2})$|^(([0-2]\d|[3][0-1])[/]([0]\d|[1][0-2])[/]([1][9]|[2][0])\d{2}\s([0-1]\d|[2][0-3])[:][0-5]\d)$|^(([0-2]\d|[3][0-1])[/]([0]\d|[1][0-2])[/]([1][9]|[2][0])\d{2}\s([0-1]\d|[2][0-3])[:][0-5]\d[:][0-5]\d)$/gi; // Date et Heure
if ( document.getElementById(prefix + texte).value != '' ){
if ( !reg2.test(document.getElementById(prefix + texte).value) ){
window.alert(alerte);
document.getElementById(prefix + texte).value = '';
return false;
}
}
}

mardi 22 juillet 2008 à 12:04:00 | Re : Réaction différente de IE à Firefox

bultez

Membre Club
ben avec la fonction que tu nous donnes, comme
celle que j'avais mise.... ben ça baigne IE, FF :
on n'a pas ce qu'il faut pour trouver l'erreur
( essaye ci dessous, tu verras )

<body>
<script  type="text/javascript">
function verifDateEntier(prefix,texte,alerte){
var reg = new RegExp('^([0]?[1-9]|[1|2][0-9]|[3][0|1])[/]([0]?[1-9]|[1][0-2])[/]([0-9]{4}|[0-9]{2})$','gi'); // Que pour la date
var reg2 = /^(([0-2]\d|[3][0-1])[/]([0]\d|[1][0-2])[/]([1][9]|[2][0])\d{2})$|^(([0-2]\d|[3][0-1])[/]([0]\d|[1][0-2])[/]([1][9]|[2][0])\d{2}\s([0-1]\d|[2][0-3])[:][0-5]\d)$|^(([0-2]\d|[3][0-1])[/]([0]\d|[1][0-2])[/]([1][9]|[2][0])\d{2}\s([0-1]\d|[2][0-3])[:][0-5]\d[:][0-5]\d)$/gi; // Date et Heure
   if ( document.getElementById(prefix + texte).value != '' ){
       if ( !reg2.test(document.getElementById(prefix + texte).value) ){
           window.alert(alerte);
           //document.getElementById(prefix + texte).value = '';
           return false;
       }
         else    {    alert("ok");
                      return true;    }
   }
}</script>
 <input name="rptFieldsList:_ctl1:tbValeur1" type="text" value="15/05/2004 15:00:00" maxlength="500" size="50" id="rptFieldsList__ctl1_tbValeur1" class="form" OnBlur="verifDateEntier('rptFieldsList__ctl1_','tbValeur1','Format correct : JJ/MM/AAAA ou JJ/MM/AAAA HH:MM:SS ou JJ/MM/AAAA HH:MM')" />
 </body>

en rouge pour voir ce qui se passe...

                Cordialement            Bul         [mon Site]     [M'écrire]


Cette discussion est classée dans : ie, erreur, mm, jj, aaaa


Répondre à ce message

Sujets en rapport avec ce message

Formulaire et compâraison de date [ par Arobaskette ] salut à tous débutant en javascript j'aimerai comparer 2 dates d'un formulaire sous la forme jj/mm/aaaa Hélas tous les scripts que je trouve prennent Erreur de script sous IE [ par JL95 ] Objet attendu sur IE [ par Doctor3600 ] Bonjour, Je suis entrain de travailler sur une petite page, où il y a un des onglets et du texte dédié sur les onglets. quand je travaille sur Mozil onclick non fonctionnel sous ie avec code sans erreur [ par begin974 ] Bonjour à tous!   J'ai une page html, avec deux images superposées image1 et image2. image1 au début ne possède pas d'attribut src car je la veut tran Problemme innerHTML sous IE [ par magicgus ] BonjourJe suis perdu, j'ai une page php dans laquelle se trouve du JS pour verifié ce que l'utilisateur tape dans le formulaire, ça marche très bien s Menu Accordion en erreur sous IE [ par Stez ] Erreur javascript avec Mozilla [ par raven44 ] Le problème est très simple : j'ai deux boutons sur un formulaire, ces deux la : <input type='button' value='Enregistrer/Fermer' Probleme avec IE sur un onChange [ par ov3rdoze ] BonjourJ'ai un select dans un formulaire et j'ai mis dans le onchange : if(this.value=='autre')document.getElementById('PI').innerHTML='';else documen Erreur sous IE mais pas sous Firefox... help [ par zut69 ] <td id="HB_Focus_Element" unselectab="" background="" h Comment convertir la date javascript date() en jj/mm/aaaa [ par vinzemuls ] Bonjour,voilà je récupere en javascript une date de fin d'inscription contenue dans une textbox.Je souhaite faire une fonction qui me retourne FALSE s


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 10,031 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales