Fonction indéfinie sur Firefox
Résolu
Jeyapero
Messages postés
58
Statut
Membre
-
Jeyapero Messages postés 58 Statut Membre -
Jeyapero Messages postés 58 Statut Membre -
Salut tout le monde, alors voilà ça fait plusieurs jours que je m'arrache les cheveux sur ce bug : lorsque j'appelle la fonction suivante, elle s'exécute sur Chrome, IE, mais pas sur Firefox ! Help !
(no comment sur la syntaxe hein, je suis un débutant ^^)
<script type="text/javascript">
var ok1=0, ok2=0, ok3=0, ok4=0, ok5=0;
checkform = function(type) {
var champ = document.getElementById(type), value = document.getElementById(type).value, ok=0, tailleCh = document.getElementById(type).value.length;
champ.class = "";
if (type=='pseudo'){
if (/^[A-Za-z0-9._-]{4,13}$/.test(value))
{
ok=1;
ok1=1;
}
else
{
ok1=0;
ok=0;
}
}
if (type=='title'){
if (/^[A-Za-z0-9._-\s]{4,20}$/.test(value))
{
ok=1;
ok2=1;
}
else
{
ok2=0;
ok=0;
}
}
if (type=='email'){
if (/^[a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,4}$/.test(value))
{
ok=1;
ok3=1;
}
else
{
ok3=0;
ok=0;
}
}
if (type=='captcha'){
if (/^[a-z0-9A-Z]{4}$/.test(value))
{
ok=1;
ok4=1;
}
else
{
ok4=0;
ok=0;
}
}
if(tailleCh==0)
{
document.getElementById('moneySubmitButton').style.display = 'rgba(142,145,129,0.3)';
}
if(ok==1)
{
document.getElementById(type).style.backgroundColor = 'rgba(0,255,0,0.5)';
}
else
{
document.getElementById(type).style.backgroundColor = 'rgba(255,0,0,0.5)';
}
if(ok1*ok2*ok3*ok4==1)
{
document.getElementById('moneySubmitButton').style.display = 'block';
}
else
{
document.getElementById('moneySubmitButton').style.display = 'none';
}
return;
}
</script>
(no comment sur la syntaxe hein, je suis un débutant ^^)
<script type="text/javascript">
var ok1=0, ok2=0, ok3=0, ok4=0, ok5=0;
checkform = function(type) {
var champ = document.getElementById(type), value = document.getElementById(type).value, ok=0, tailleCh = document.getElementById(type).value.length;
champ.class = "";
if (type=='pseudo'){
if (/^[A-Za-z0-9._-]{4,13}$/.test(value))
{
ok=1;
ok1=1;
}
else
{
ok1=0;
ok=0;
}
}
if (type=='title'){
if (/^[A-Za-z0-9._-\s]{4,20}$/.test(value))
{
ok=1;
ok2=1;
}
else
{
ok2=0;
ok=0;
}
}
if (type=='email'){
if (/^[a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,4}$/.test(value))
{
ok=1;
ok3=1;
}
else
{
ok3=0;
ok=0;
}
}
if (type=='captcha'){
if (/^[a-z0-9A-Z]{4}$/.test(value))
{
ok=1;
ok4=1;
}
else
{
ok4=0;
ok=0;
}
}
if(tailleCh==0)
{
document.getElementById('moneySubmitButton').style.display = 'rgba(142,145,129,0.3)';
}
if(ok==1)
{
document.getElementById(type).style.backgroundColor = 'rgba(0,255,0,0.5)';
}
else
{
document.getElementById(type).style.backgroundColor = 'rgba(255,0,0,0.5)';
}
if(ok1*ok2*ok3*ok4==1)
{
document.getElementById('moneySubmitButton').style.display = 'block';
}
else
{
document.getElementById('moneySubmitButton').style.display = 'none';
}
return;
}
</script>
A voir également:
- Fonction indéfinie sur Firefox
- Fonction si et - Guide
- Video downloadhelper firefox - Télécharger - Outils pour navigateurs
- Telecharger firefox - Télécharger - Navigateurs
- Exporter favoris firefox - Guide
- Fonction miroir - Guide
2 réponses
Salut, j'ai testé, en effet le code de marche pas sur FF.
C'est un problème dans la deuxième RegExp, place le \s avant le A-Z (j'suis nul en RegExp mais ça a marché).
2eme chose: pour indiquer un état vrai ou faux, ici si tout est bon (ok, ok1, ok2...), on n'utilise pas des nombres 0 et 1 mais les booléens true et false. Avec eux on peut utliser des opérateurs logiques ET: &&, OU: ||, NON: !, etc... remplace donc tous les 0 par des false et les 1 par des true. Et du coup:
Dernière chose: pour poster du code, la balise <code >< /code> est plus que pratique pour la lisibilité (petit bouton "Code" dans l'éditeur de post).
C'est un problème dans la deuxième RegExp, place le \s avant le A-Z (j'suis nul en RegExp mais ça a marché).
2eme chose: pour indiquer un état vrai ou faux, ici si tout est bon (ok, ok1, ok2...), on n'utilise pas des nombres 0 et 1 mais les booléens true et false. Avec eux on peut utliser des opérateurs logiques ET: &&, OU: ||, NON: !, etc... remplace donc tous les 0 par des false et les 1 par des true. Et du coup:
if(ok==1) // ainsi que if(ok1*ok2*ok3*ok4==1)deviendront
if(ok) // ainsi que if(ok1 && ok2 && ok3 && ok4)Plus de ==1, car les comparaison (ici d'égalités) renvoient eux-même true ou false.
Dernière chose: pour poster du code, la balise <code >< /code> est plus que pratique pour la lisibilité (petit bouton "Code" dans l'éditeur de post).