Pré-remplir le champ de formulaire via l'URL en html
Je suis à la recherche d'un moyen simple pour pré-remplir un champ de mon formulaire de contact quand un utilisateur clique sur un lien qui est donné dans une autre page.
C'est mon formulaire de contact en html :
<form method="post" action="submit.php" >
<p>Your name:
<br /><input name="name" /></p>
<p>Your email:
<br /><input name="email" /></p>
<p>Your message:
<br /><textarea name="message" id="message" rows="10" cols="50"></textarea></p>
<p><input type="submit" value="Send" /></p>
</form>
Je veux remplir le champ "message" avec "un texte" lorsqu'un utilisateur clique sur une url comme www.xyz.com/contact.html?setmessagefield=some_text
OriginalL'auteur Rao | 2012-12-28
Vous devez vous connecter pour publier un commentaire.
JavaScript n'a pas de fonctions pour analyser les paramètres d'url comme ça (Puisque ces paramètres sont généralement utilisés pour envoyer des données au serveur).
Je suggérerais à l'aide d'un au lieu de hachage (hash est strictement côté client):
Maintenant, ajoutez de l'
id
's à vos champs:Puis définissez les valeurs comme ceci, sur la charge:
Exemple de travail
Le gros avantage de cela est qu'il est flexible. Si vous souhaitez définir les valeurs de 2 champs, vous offre ces 2 champs'
id
's dans la table de hachage:4 champs? 4 id:
Pas besoin de modifier le code, puis.
Pourriez envisager les problèmes de sécurité avant la mise en œuvre: security.stackexchange.com/questions/29598/...
OriginalL'auteur Cerbrus
De façon plus moderne serait d'utiliser la
URL()
constructeur et la searchParams propriété. Laissez le moteur de navigateur ne les travaux!Essayer en ligne!
OriginalL'auteur aloisdg
Vous pouvez récupérer votre url actuelle avec
window.location.href
et puis obtenir le message par défaut via une expression régulière :console.log(window.location.href)
devrait vous donnerwww.xyz.com/contact.html?setmessagefield=some_text
etconsole.log(msg)
devrait vous donner le tableau :["?setmessagefield=some_text", "some_text"]
.OriginalL'auteur Samuel Caillerie