abk Posted July 12, 2023 Share Posted July 12, 2023 Bonjour, >> v1.7.8.8 et v1.8x >> thème enfant sur classic voici mon impératif : je dois gérer un placeholder sur le champs "phone" et si possible la saisie du numéro de téléphone à la volé sur le formulaire de commande car la commande est envoyé directement à un organisme de crédit qui oblige mon client à envoyer le num avec un format très strict : +(indicatif pays)(num de tél) sans espace ni autre caractère que le + du départ. voici mon problème : la solution de modifier le regex sur validate.php par : return preg_match('/^[+0-9]*$/', $number); n'est pas souhaitée par mon client car trop de contrainte pour les acheteurs mais cela n'est pas vraiment le pb car même si il l'acceptai j'ai un pb avec ajax lors du changement de pays sur le formulaire pour placer un placeholder par pays. Donc : ne voulant pas mettre les mains dans les php que gèrent le formulaire je me suis dis que j'allais faire un petit js qui allait gérer la saisie de l'internaute tout simplement avec un positionnement d'un placeholder en fonction du pays choisi et une réécriture du num au bon format tjrs en fonction du pays avec une fonction appelée par document.getElementById("field-phone").onchange hop, code js implanté sur le adress-form.tpl, pas très jojo mais efficace et rapide. Tout était ok sauf que lorsque l'on change de pays ajax remonte le formulaire et là quelque chose pose pb. Certes il y a une latence mais ce que je ne m'explique pas c'est que l'id du champ n'est même plus détecté et cela uniquement au premier changement de pays car ne voyant pas où était le pb à un moment j'ai fait un test simple pour voir le retour au niveau de l'id. if(document.getElementById("field-phone")) console.log('IdPhone OK'); else console.log('IdPhone NO'); Ce qui m'interpelle c'est que lors du changement de pays la première fois uniquement je n'ai aucune réponse sur la console ??? Ni OK ni NO ni même une erreur JS ???? Même en le positionnant dans la boucle foreach du form. Par contre si l'on change de pays à nouveau le code JS fonctionne à nouveau et tout est ok ? Si vous avez une solution, une explication ... merci d'avance de vos lumières. Link to comment Share on other sites More sharing options...
abk Posted July 13, 2023 Author Share Posted July 13, 2023 Bon d'après ce que j'ai pu voir en regardant le code php cela vient que lors du premier changement de pays on recharge certains champs dont le champ "phone" ce qui rendait mon getElementById inactif. Donc tout ce qui était en synchrone n'était plus valable. J'ai pu le contrer en mettant une fonction asynchrone sur le changement du pays. Je suis bien évident convaincu qu'une solution plus propre en php est plus souhaitable mais je n'ai malheureusement pas encore les compétences pour cela. Par contre je ne vois toujours pas pourquoi ma vérif si l'id existe me retourne ni "NO" ni même d'erreur JS et pourquoi dès le deuxième changement de pays cela fonctionne de nouveau. Si vous avez la réponse je suis preneur. Merci. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now