Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
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 12/05/2011, 19h39   #1
Invité de passage
 
Inscription : décembre 2005
Messages : 8
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 8
Points : 0
Points : 0
Par défaut toLowerCase et IE

Bonjour,
j'ai un script d'autocomplétion qui contient le test suivant :
Code :
1
2
3
4
if (    (client.name && client.name.toLowerCase().match(value.toLowerCase())) ||
                        (client.login && client.login.toLowerCase().match(value.toLowerCase())) ||
                        (client.email && client.email.toLowerCase().match(value.toLowerCase()))
                    ){
Ce script fonctionne sur firefox, mais pas sur IE8.
Si j'enlève les toLowerCase, il fonctionne sous les 2 navigateurs !
Quelqu'on a-t-il déjà eu le pb, ou a une solution à me conseiller.
Merci
wolfe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2011, 20h19   #2
Membre expérimenté
 
Duke Jikel
Inscription : mai 2010
Messages : 340
Détails du profil
Informations personnelles :
Nom : Duke Jikel

Informations forums :
Inscription : mai 2010
Messages : 340
Points : 548
Points : 548
Citation:
Envoyé par wolfe Voir le message
Bonjour,
j'ai un script d'autocomplétion qui contient le test suivant :

Ce script fonctionne sur firefox, mais pas sur IE8.
Si j'enlève les toLowerCase, il fonctionne sous les 2 navigateurs !
Quelqu'on a-t-il déjà eu le pb, ou a une solution à me conseiller.
Merci
Match prend une expression regulière en paramètre....
dukej est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2011, 20h29   #3
Invité de passage
 
Inscription : décembre 2005
Messages : 8
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 8
Points : 0
Points : 0
"value" a pour valeur le ou les caractères saisis dans le champs de formulaire concerné par l'autocomplétion...
wolfe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2011, 22h28   #4
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 806
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 806
Points : 35 803
Points : 35 803
Mouais... utiliser value comme nom de variable, c'est un peu rechercher les ennuis quand même...
value est un mot clé du langage, il ne doit pas être utilisé comme nom de variable, paramètre ou quelque identifiant que ce soit.
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 11h21   #5
Invité de passage
 
Inscription : décembre 2005
Messages : 8
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 8
Points : 0
Points : 0
Résolu...
J'avais une ligne "console.log" qui traînait juste au dessus du test, et comme ça ne marche que sur firefox....
wolfe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2011, 22h50   #6
Membre expérimenté
 
Duke Jikel
Inscription : mai 2010
Messages : 340
Détails du profil
Informations personnelles :
Nom : Duke Jikel

Informations forums :
Inscription : mai 2010
Messages : 340
Points : 548
Points : 548
Citation:
Envoyé par Bovino Voir le message
Mouais... utiliser value comme nom de variable, c'est un peu rechercher les ennuis quand même...
value est un mot clé du langage, il ne doit pas être utilisé comme nom de variable, paramètre ou quelque identifiant que ce soit.
C'est faux, ce n'est pas un mot clé du langage au même titre que function, for, if, while, else, in, etc...

C'est une propriété d'un élément DOM. Ce qui n'a rien à voir avec le langage. Tu peux très bien nommer une variable "value". Et puis ce nom de variable prend tout son sens quand tu utilises un getter / setter.


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
MyClass = function() {
    this.__defineGetter__('value', this.getType);
    this.__defineSetter__('value', this.setType);
}
 
MyClass.prototype.getType = function() {
  return this._type;
};
 
MyClass.prototype.setType = function(value) {
  this._type = value;
  alert('value changed : ' + value);
};
 
 
var instance = new MyClass();
 
instance.value ='new value :)';
Dans énormément de cas de setter/getters on utilise value.

Trop de gens confondent Javascript et DOM, ce sont pourtant 2 choses très différentes.
Le Javascript peut exister sans le DOM
dukej est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 20h35   #7
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 806
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 806
Points : 35 803
Points : 35 803
Citation:
Trop de gens confondent Javascript et DOM, ce sont pourtant 2 choses très différentes.
Le Javascript peut exister sans le DOM
Euh... oui, mais non
JavaScript est un langage de script, il ne peut donc fonctionner que dans le cadre d'un environnement qui lui fournit une interface spécifique.
Dans le cadre d'un navigateur, cette interface, c'est le DOM qui est donc pleinement du JavaScript qui complète le core JavaScript.

Citation:
C'est faux, ce n'est pas un mot clé du langage au même titre que function, for, if, while, else, in, etc...
Je parle de mots clés, tu me réponds instructions...
Là c'est toi qui confonds...
Le DOM est une interface JavaScript qui complète les objets natifs du core JavaScript en décrivant les balises HTML sous forme d'objets JavaScript.
De ce fait, des éléments de type input, button, select, etc. possèdent des propriétés spécifiques dont la propriété value (tout comme un objet Array possède par exemple, une propriété length). Ce nom de propriété devient donc un mot clé du langage puisque c'est le langage qui la crée et non le développeur. Que tu l'utilises comme nom de propriété de tes objets personnels ne change rien au fait que nommer une variable comme ça est maladroit (même si effectivement, rien ne l'interdit formellement), notamment dans un scope global.
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino 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 11h44.


 
 
 
 
Partenaires

Hébergement Web