2009-08-17 4 views
0

J'ai un formulaire dans lequel un bouton est là sur un clic de ce bouton J'appelle une fonction javascript dans laquelle je suis affichage comme 3 .. 2 .. 1 genre d'effet alors Je retourne vrai.Exécuter le code C# après avoir exécuté tous les codes javascript

Mais après l'affichage de 3, seul le retour vrai est exécuté et le formulaire est soumis. Comment arrêter la soumission de formulaire avant d'exécuter le script.

Edit:

function jsFun() 
{ 
    timerCount(3); 
    //Calling the Timer Function. 
} 

var t; 

function timerCount(cDown) 
{ 
    if (cDown == 0) 
    { 
     clearTimeout(t); 
     return true; 
    } 

    $('#<%= mainContainer.ClientID %>').html(cDown); 
    cDown = cDown - 1; 
    t = setTimeout('timerCount(' + cDown + ')', 1000); 
} 

<asp:Button ID="btnStarts" runat="server" Text="Start" OnClientClick="return jsFun();" OnClick="btn_click" /> 
+1

Pouvez-vous poster votre code s'il vous plaît? –

+0

Utilisez-vous un contrôle de bouton asp.net? – rahul

+0

Fonction jsFun() { timerCount (3); // Appel de la fonction de minuterie. } var t; function timerCount (cDown) { if (cDown == 0) { clearTimeout (t); renvoyer true; } $ ('# <% = mainContainer.ClientID%>') .html (cDown); cDown = cDown - 1; t = setTimeout ('timerCount (' + cDown + ')', 1000);

Répondre

1

Le formulaire sera soumis si le bouton 'Soumettre' renvoie true. Donc, la réponse est return false, puis faites votre compte à rebours (car il est probablement asynchrone), et soumettez manuellement le formulaire manuellement via 'form.submit();'

+0

effectivement je veux appeler le gestionnaire d'événements pour le clic de bouton après l'exécution de la fonction javascript. Comment faire cela? –

+0

Il suffit de l'appeler? Postez votre code et peut-être que nous pouvons vous aider. Mais quand vous frappez '1', appelez simplement le submit(). –

+0

Pour autant que je sache le moyen le plus propre de le faire est avec un service web, c'est-à-dire quand le javascript est terminé, appelez le service web qui exécutera le code .net – RC1140

0

J'ai modifié le code un peu ne pas utiliser ASP.NET comme ceci:

 
function jsFun() { 
    timerCount(3); 
} 

var t; 

function timerCount(cDown) { 
    if (cDown == 0) { 
     clearTimeout(t); 
     return true; 
    } 

    document.getElementById('testbutton').value = cDown; 

    cDown = cDown - 1; 
    t = setTimeout('timerCount(' + cDown + ')', 1000); 
} 

appel comme ceci:

<input id="testbutton" name="testbutton" type="button" value="Test me!" onclick="return jsFun();" />

Ce qui fonctionne exactement comme annoncé! Je dirais qu'il ya un problème avec cette ligne:

$('#<%= mainContainer.ClientID %>').html(cDown);

Hope it helps.

+0

alors comment soumettre le formulaire et lancer l'événement gestionnaire pour le contrôle du bouton. –

+0

Je dirais document.myForm.submit(); juste après clearTimeout (t) ;? –

+0

http://stackoverflow.com/questions/1286770/how-to-call-event-handler-code-from-javascript-code, ce lien vous montrera comment appeler un événement ou une méthode côté serveur en utilisant JS. –

Questions connexes