Bonjour à toute la communauté Velo,
Je fais face à un problème qui, après de nombreux tests, semble être une limitation de la plateforme, mais j’aimerais avoir votre confirmation.
Mon objectif : Je souhaite intégrer l’API Google Places sur un champ d’adresse dans un formulaire de mon site pour offrir une saisie semi-automatique.
Le contexte : Le formulaire utilisé est un élément standard de l’application “Wix Forms”.
Le problème : Il semble impossible d’accéder aux champs de saisie (inputs) qui se trouvent à l’intérieur de l’élément “Wix Forms” via le code Velo de la page. Toute tentative pour sélectionner un champ avec $w()
retourne un résultat vide, ce qui empêche d’attacher des gestionnaires d’événements comme .onInput()
.
Voici un résumé de tous les tests que j’ai déjà effectués :
- Sélection directe de l’input : En utilisant l’ID du champ (ex:
#form-field-reponse_courte_5bf6
),$w()
ne trouve pas l’élément, ce qui mène à une erreurTypeError: ... is not a function
car la variable qui le contient est vide. - Utilisation des API de formulaire : En suivant la documentation de
wix-forms-v2
, j’ai essayé d’utiliser.onFieldValueChange()
sur l’élément formulaire lui-même. Cela a échoué avec une erreurTypeError: wixForm.onFieldValueChange is not a function
, suggérant que mon formulaire n’est pas du type compatible V2. - Diagnostic du type de formulaire : Un test pour trouver le type de l’élément formulaire via
console.log($w("#monFormulaireID").type)
a échoué car le sélecteur$w()
n’a même pas trouvé l’élément formulaire lui-même (erreur : “Élément introuvable”). - Diagnostic par événement de clic : J’ai utilisé le code de diagnostic ci-dessous pour voir si Velo pouvait détecter un clic sur n’importe quel champ de saisie. Le code s’exécute sans erreur, mais lorsque je clique sur les champs de mon formulaire Wix Forms, absolument rien ne s’affiche dans la console.
`JavaScript// Code de diagnostic utilisé
$w.onReady(function() {
console.log(“Le mode diagnostic est prêt.”);
$w('TextInput').onClick((event) => {
let elementId = event.target.id;
console.log("✅ TextInput cliqué. Son ID est :", elementId);
});
$w('AddressInput').onClick((event) => {
let elementId = event.target.id;
console.log("✅ AddressInput cliqué. Son ID est :", elementId);
});
});`
Ma conclusion actuelle : Les champs à l’intérieur d’un élément “Wix Forms” standard sont “sandboxed” (dans une sorte de boîte noire ou d’iFrame) et sont donc complètement inaccessibles au code Velo de la page.
Ma question à la communauté :
Est-ce que ma conclusion est correcte ? Est-il vraiment impossible d’attacher des écouteurs d’événements en temps réel aux champs d’un formulaire “Wix Forms” ? Ou existe-t-il une méthode que j’aurais manquée ?
La seule solution alternative semble être de reconstruire entièrement un formulaire personnalisé avec des éléments de saisie standards, ce qui est beaucoup moins pratique.
Merci d’avance pour votre temps et votre expertise !