par
didgar » 01 août 2006, 11:13
Re !
Il y un pb !
Je lance la verif sur le champ pseudo avec un onblur(). Si je me rends sur un champ quelconque du form tout va bien. La vérif se fait correctement.
Par contre, une partie du process qui concerne le code postal est lancée sur un onfocus(). Si je renseigne le champ pseudo et que je clique dans le champ code postal, la verif du pseudo ne se fait pas du tout. Elle est courcircuitée.
Pour la relancer, je dois recliquer dans le champ pseudo et cliquer n'importe ou sauf dans le champ code postal. Il y a bien une sorte de collision.
Je vais donc instancier deux objets "xhr" ce qui m'amène à une autre question :
J'utile ça :
Code : Tout sélectionner
var xhr = null;
function getXhr(){
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
}
Puis j'ai deux fonctions. Une pour la verif pseudo et une pour l'association codepostal => liste des villes
Dans chacune de ces fonctions "utilisateur" il y a l'appel getXhr(); qui insctancie l'objet xhr en utilisant la fonction ci-dessus.
J'aimerais pouvoir remplacer dans mes fonctions utilisateur getXhr(); par getXhr('codepostal'); dans un cas et getXhr('pseudo'); dans l'autre. Ceci afin d'instancier xhr_pseudo et xhr_codepostal avec la même fonction.
Est-ce possible ?
Si oui comment se traduit
Code : Tout sélectionner
function getXhr(){
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
...
}
Faut-il écrire :
Code : Tout sélectionner
function getXhr(nom){
if(window.XMLHttpRequest) // Firefox et autres
xhr_eval(nom) = new XMLHttpRequest();
...
}
En fait je ne sais pas trop comment générer le nom de l'objet à la volée

Je ne sais plus s'il faut utiliser eval ou autre
D'autant que dans mes fonctions "utilisateur" la syntaxe sera en dur :
deviendrait
J'espère que ma question est claire
A+
Didier