2009-12-18 13 views
1

J'ai une alerte popup javascript sur ma page. Le problème que je rencontre est que, au lieu d'attendre que l'utilisateur clique sur le bouton OK, il fasse simplement une redirection, quelque chose qu'il devrait faire APRÈS avoir cliqué sur le bouton OK. Quelqu'un peut-il m'aider s'il vous plaît à modifier mon code afin de le faire fonctionner comme il se doit s'il vous plaît?Alerte Javascript avec confirmation

function f() 
{ 

    ar ape =radalert('<div align=""center"" style=""font-weight: bold;""> OPEN BOX HERE</div>', 123, 200); 
if(ape)window.location.href = "/Default.aspx"; 
Sys.Application.remove_load(f); 
} 

Sys.Application.add_load(f); 

Répondre

4

Vous pouvez utiliser la méthode add_close pour fixer une fonction de rappel pour savoir quand est fermé l'alerte:

var win = radalert('foo'); 
win.add_close(function() { 
    alert('bar'); // This will be executed when the radalert is closed. 
}); 

Plus d'info:

+0

Belle recherche sur la valeur de retour de 'radalert'. –

+0

+1 fois, dans le temps que je lui ai donné, je ne pouvais pas trouver les documents de référence foudroyés. –

2

Vous n'utilisez pas comme il semble JavaScript alert (dans le sens de la fonction intégrée), vous utilisez quelque chose appelé radalert (de Telerik). Cela signifie que ne peut pas se comporter comme un JavaScript alert, ce qui amène le traitement de script à un arrêt brutal pendant qu'il est à l'écran. Je ne connais rien à Telerik, mais la plupart de ces remplacements d'alertes offrent un rappel que vous pouvez transmettre qui se déclenche lorsque l'alerte est effacée. C'est là que vous voulez votre code window.location.href = ....

Habituellement, cela ressemble à quelque chose comme ceci:

function blah() { 

    niftyAlertThingy("Here's my message", { 
     onOK: function() { 
      window.location.href = "/Default.aspx"; 
      // etc. 
     } 
    }); 
} 

Cette fonction retourne blahimmédiatement, avec l'alerte encore sur la page; puis le code d'alerte appelle votre rappel lorsque l'utilisateur clique sur OK.

Je suis sûr que le Telerik radalert a quelque chose de similaire ...

+0

Telerik a quelque chose de similaire, mais il est piloté par le modèle d'abonnement à l'événement MS AJAX, sans rappel. CMS couvre dans sa réponse http://stackoverflow.com/questions/1928804/javascript-alert-with-confirmation/1928896#1928896 –

+0

Big +1 à CMS pour trouver les docs foudroyés. @Crescent Fresh: Bien sûr, c'est un rappel, cependant! ;-) –

+0

@ T.J .: vous savez ce que je veux dire;) –

1

Je pense que votre code aurait besoin plus d'explications et peut-être votre code derrière trop (juste le code correspondant sur la façon dont vous gérez « OK » Cliquez) . Mon expérience avec Telerik n'est pas bonne. Je vous suggère d'essayer l'interface utilisateur jQuery. Il vous donne un meilleur contrôle sur la façon dont vous pouvez gérer les événements et où.

Exemple (De here)

$(function(){ 

    $("#dialog").dialog({ 
    autoOpen: false, 
    modal:true, 
    buttons : { 
     "Yes" : function() {    
      $(this).dialog("close"); 
      eval($("#<%= hdnBtnPostback.ClientID %>").val()); 
     }, 
     "No" : function() { 
      $(this).dialog("close"); 
     }, 
     "Maybe": function() { 
      $(this).dialog("close"); 
      //what should we do when "Maybe" is clicked? 
     }   
    } 
    }); 
}); 
Questions connexes