9
votes

Exécuter un autre JavaScript lorsque l'utilisateur a cliqué sur "OK" dans la zone d'alerte

Fondamentalement, j'ai un script qui vérifie la base de données toutes les 10 secondes et notify utilisateur si les données ont changé avec une boîte d'alerte JavaScript. Mais j'ai besoin de la base de données également pour être modifiée lorsque l'utilisateur a vu l'alerte et cliqué sur OK. Donc, est-il possible de faire fonctionner une fonction JavaScript lorsque l'utilisateur clique sur "OK" sur l'alerte JavaScript?

donc par exemple xxx

et lorsque l'utilisateur clique sur OK, il doit exécuter cette fonction xxx


8 commentaires

Utilisez Confirmer au lieu d'alerter Tizag.com/javascriptt/javascriptConfirm.php


@Bondye rien de mal avec alerte. Il ne veut pas la confirmation de l'utilisateur.


@Jivings Qu'en est-il de lorsque l'utilisateur a vu l'alerte et cliqué sur OK


@ Jiviingings précisément! C'est pourquoi j'ai posté ma réponse réellement utile! qui a rapidement été voté ... ha ha


Dans mon cas, il est important que l'utilisateur ait seulement la possibilité de cliquer sur OK, je ne peux donc pas utiliser la boîte de confirmation


@ user1323294, vous devriez alors reformuler votre question afin que vous ne demandiez pas que l'OK soit un contrôle d'une sorte ... Regardez ce que vous avez demandé! "Mais j'ai besoin de la base de données pour être modifiée lorsque l'utilisateur a vu l'alerte et cliqué sur OK". Les actions de l'utilisateur ici ne sont pas pertinentes. Une fois que l'alerte est opérationnelle, le seul moyen d'empêcher une nouvelle exécution est de fermer la fenêtre du navigateur sans cliquer sur "OK". Ce n'est pas la bonne façon de s'approcher de cela, évidemment. Votre alerte est 100% inutile (sans oublier l'ennui à l'utilisateur). Il y a de meilleurs moyens de notifier à quelqu'un que des alertes pop dans leur visage.


Oui, cela ne serait probablement pas le meilleur moyen d'informer l'utilisateur. Mais dans mon cas, c'est exactement ce que je dois faire. La base de données doit être mise à jour lorsque l'utilisateur voit les nouvelles données et il n'est pas possible d'annuler la notification. C'est pourquoi j'ai précisément demandé comment procéder avec une boîte d'alerte.


@ user1323294, ok, eh bien ... je suis content que vous ayez trouvé la réponse que vous recherchiez. Je continuerai à suggérer que vous devriez mettre l'alerte comme quelque chose qui se produit après que la DB ait été mise à jour, de sorte que, si rien d'autre, il a pour but de confirmer que la transaction a réussi.


3 Réponses :


8
votes
function show_alert()
{
    alert("New data!");
    UpdateDB();
}

0 commentaires

10
votes

Qu'est-ce que vous cherchez vraiment est le confirmer () . Je ne pense pas que vous puissiez agir sur une alerte OK Appress (et vous ne voulez vraiment pas que cela ne quitte pas l'utilisateur la possibilité de changer d'avis!) ...

SO ... xxx


5 commentaires

Pas s'il ne veut pas confirmer l'utilisateur.


Oublier un instant que le OP a réellement demandé avec précision pour cela lorsqu'il a dit ... "Lorsque l'utilisateur a vu l'alerte et cliqué sur OK", quel est le point de l'alerte alors? L'utilisateur a appuyé sur un bouton. Si quelque chose, vous voudrez que l'alerte après que l'appel AJAX revienne, sinon cela ne sert à rien du tout! Et merci pour la baisse vote. Vous aidez vraiment la communauté avec votre diligence. Je serai sûr de réfléchir à deux fois avant de pouvoir essayer d'aider quelqu'un.


@ Dr.dredel Vous faites une hypothèse que c'était moi qui vous a baissé. Néanmoins, formatez votre réponse correctement et je vais le supprimer.


+1 Il est clair que ce n'est pas une réponse déraisonnable compte tenu de la manière dont les cases de confirmation ont été conçues pour fonctionner. Lorsque vous posez des questions lorsque l'utilisation de certaines caractéristiques standard est peu orthodoxe ou hors de l'ordinaire, la personne qui demande la question devrait envisager d'être très claire sur l'explication pourquoi il / elle utilise ladite caractéristique d'une manière qui est contrairement à la sagesse conventionnelle. Sinon, de bonnes réponses potentiellement bonnes conversées pour des malentendus simples et évitables.


@Jivings, je n'ai fait aucune hypothèse de ce type. Je m'adressais quiconque m'avait abouti. J'ai formaté mon code pour être plus jolie. N'hésitez pas à uppoter d'impunité! :)



17
votes

L'alerte La fonction arrête l'exécution du code jusqu'à ce qu'elle soit rejetée. Cela signifie que n'importe quel code que vous souhaitez exécuter après que l'alerte ait été clickd peut simplement être placé après l'appel à la méthode de l'alerte . xxx


4 commentaires

Cela fonctionne bien si je fais juste une fonction où il envoie les données au serveur. Mais j'ai besoin de ma fonction pour rafraîchir la page après le poste. Mais quand j'ajoute un succès Succès: fonction (réponse) {window.localisation.rarod ()} Il continue de recharger encore et encore même sans alerte montrant.


Pouvez-vous mettre ensemble un jsfiddle.net de la façon dont vous implomplez cela et je vais jeter un coup d'oeil.


C'est ce que j'ai utilisé: jsfiddle.net/ffmrz de sorte qu'il reçoit des données du serveur toutes les 10 secondes et Si les données ont changé, il affiche une alerte. Et une fois que l'utilisateur a appuyé sur le bouton OK, il doit faire le message JQuery, puis recharger la fenêtre. Mais maintenant, il semble poster et mettre à jour la fenêtre automatiquement sans que l'alerte montrant ...


Cette partie ici si (olddata! = "") Alerte ("nouvelles données!"); . Parce que vous n'avez pas mis les bretelles bouclées autour du contenu de l'instruction si , seule la première ligne après le si est considérée comme une partie du si . Le reste est en dehors de celui d'une exécution indépendamment de la vérification de votre condition.