Je veux que ce lien ait une boîte de dialogue JavaScript qui demande à l'utilisateur « Êtes-vous sûr? O / N ».
<a href="delete.php?id=22">Link</a>
Si l'utilisateur clique sur «Oui», le lien devrait se charger, si «Non», rien ne se passera.
Je sais comment faire cela dans les formulaires, en utilisant onclick
une fonction qui retourne true
ou false
. Mais comment faire cela avec un <a>
lien?
javascript
html
dom-events
Christoffer
la source
la source
Réponses:
Gestionnaire d'événements en ligne
De la manière la plus simple, vous pouvez utiliser la
confirm()
fonction dans unonclick
gestionnaire en ligne .Gestion avancée des événements
Mais normalement, vous souhaitez séparer votre code HTML et Javascript , je vous suggère donc de ne pas utiliser de gestionnaires d'événements en ligne, mais de mettre une classe sur votre lien et d'y ajouter un écouteur d'événements.
Cet exemple ne fonctionne que dans les navigateurs modernes (pour IEs plus anciens , vous pouvez utiliser
attachEvent()
,returnValue
et fournir une implémentation pourgetElementsByClassName()
ou utiliser une bibliothèque comme jQuery qui aidera les questions multi-navigateurs). Vous pouvez en savoir plus sur cette méthode avancée de gestion des événements sur MDN .jQuery
Je voudrais rester loin d'être considéré comme un fanboy de jQuery, mais la manipulation DOM et la gestion des événements sont deux domaines où cela aide le plus avec les différences de navigateur. Juste pour le plaisir, voici à quoi cela ressemblerait avec jQuery :
la source
confirm(…)
dans le gestionnaire en ligne. Je n'ai pas pu reproduire cela.Je suggère d'éviter le JavaScript en ligne:
Démo JS Fiddle .
Les éléments ci-dessus ont été mis à jour pour réduire l'espace, tout en maintenant la clarté / la fonction:
Démo JS Fiddle .
Une mise à jour quelque peu tardive, à utiliser
addEventListener()
(comme suggéré, par bažmegakapa , dans les commentaires ci-dessous):Démo JS Fiddle .
Ce qui précède lie une fonction à l'événement de chaque lien individuel; ce qui est potentiellement très coûteux, lorsque vous pouvez lier la gestion des événements (en utilisant la délégation) à un élément ancêtre, tel que le suivant:
Démo JS Fiddle .
Parce que la gestion des événements est attachée à l'
body
élément, qui contient normalement une foule d'autres éléments cliquables, j'ai utilisé une fonction intérimaire (actionToFunction
) pour déterminer quoi faire avec ce clic. Si l'élément cliqué est un lien et a donc untagName
ofa
, la gestion des clics est transmise à lareallySure()
fonction.Références:
addEventListener()
.confirm()
.getElementsByTagName()
.onclick
.if () {}
.la source
addEventListener
). +1 cependant.addEventListener()
modèle.if(check == true)
parif(check)
.la source
Vous pouvez également essayer ceci:
la source
jAplus
Vous pouvez le faire, sans écrire de code JavaScript
Page de démonstration
la source
Cette méthode est légèrement différente de l'une des réponses ci-dessus si vous attachez votre gestionnaire d'événements à l'aide de addEventListener (ou attachEvent).
Vous pouvez attacher ce gestionnaire avec:
Ou pour les anciennes versions d'Internet Explorer:
la source
window.event
.Juste pour le plaisir, je vais utiliser un seul événement sur l'ensemble du document au lieu d'ajouter un événement à toutes les balises d'ancrage:
Cette méthode serait plus efficace si vous disposiez de plusieurs balises d'ancrage. Bien sûr, il devient encore plus efficace lorsque vous ajoutez cet événement au conteneur contenant toutes les balises d'ancrage.
la source
La plupart des navigateurs n'affichent pas le message personnalisé transmis à
confirm()
.Avec cette méthode, vous pouvez afficher une fenêtre contextuelle avec un message personnalisé si votre utilisateur a modifié la valeur d'un
<input>
champ.Vous ne pouvez l'appliquer qu'à certains liens , ou même à d'autres éléments HTML de votre page. Ajoutez simplement une classe personnalisée à tous les liens qui nécessitent une confirmation et appliquez le code suivant:
Essayez de modifier la valeur d'entrée dans l'exemple pour obtenir un aperçu de son fonctionnement.
la source
UTILISATION DE PHP, HTML ET JAVASCRIPT pour l'invite
Juste si quelqu'un cherche à utiliser php, html et javascript dans un seul fichier, la réponse ci-dessous fonctionne pour moi.
la raison pour laquelle j'ai utilisé du code php au milieu est parce que je ne peux pas l'utiliser depuis le début ..
le code ci-dessous ne fonctionne pas pour moi: -
et je l'ai modifié comme dans le 1er code, puis je lance comme ce dont j'ai besoin .. J'espère que je peux aider quelqu'un qui a besoin de mon cas.
la source