8
votes

ASP.NET: Le gestionnaire d'événements ONSERVERCLICK non appelé si vous utilisez onclick

J'ai un problème particulier ici et je ne peux pas comprendre ma vie, quelle est la solution. Notez que le code suivant est pas créé de manière dynamique, mais juste immédiatement dans mon fichier aspx . xxx

Ceci fonctionne juste aussi longtemps que cela fonctionne aussi longtemps que cela fonctionne aussi longtemps que Je ne avez pas le onclick Attribut, c'est-à-dire que le gestionnaire OnserverClick est tiré comme il le devrait. Mais lorsque j'utilise l'attribut onclick , il n'est pas, que je confirmais ou refusez la boîte de dialogue de confirmation.

Qu'est-ce que je fais mal? Merci


0 commentaires

8 Réponses :


1
votes

On dirait que l'événement OnClick ne bouillonne pas.

Vous devriez simplement être capable d'utiliser P>

$("form").submit(function() {

        var resp = confirm("Save & Submit?");
        if (resp) {
            serializeStats();
            return true;
        }
        else {
            return false;
        }

    });


4 commentaires

Le contrôle HTMLButton n'a pas de propriété OnClientClick.


Cela fait quand tu n'as pas eu assez de café!



Ah merci - désolé. Je me souviens maintenant que je l'ai fait de cette façon parce que je devais exécuter une fonction avant que la soumission ne s'est produite. C'était dérangeant l'enfer de moi que je ne me souvenais pas.



15
votes

Si vous regardez le code source généré, vous verrez les éléments suivants:

<asp:Button runat="server"
        OnClick="btnSubmit_Click" OnClientClick="return confirm('Sure?')" Text="Submit" />


4 commentaires

Oui, j'ai vu cela en Firebug, mais je pensais que cela signifiait essentiellement que je faisais "le faire mal". J'ai essayé d'expérimenter avec onclick = "si (confirme (" assurez-vous ("sûr?")) Retourner; ", mais avec cela, le __ dopostback n'était plus là! :(


La raison de ne pas utiliser est qu'il utilise l'entrée , alors que j'ai besoin de la touche étiquette pour un style Easy CSS. La raison de la nécessité d'avoir besoin n'est pas reflétée dans la question, faites-la confiance à cela dessus. :)


Dans ce cas, vous pouvez être intéressé par: Stackoverflow.com/Questtions/187482/...


Votre code est 100% à droite, mais je voulais mentionner que si vous définissez le bouton ASP.NET utilise UTILUMITBEHAVOR = FALSE, ce code ne fonctionnera pas et vous devrez trouver une autre façon de le gérer. MSDN.MicRosoft.com/fr- US / Bibliothèque / ...



0
votes

est un contrôle HTMLButton où OnserverClick est le seul événement de clic sur le côté serveur. OnClick n'est pas reconnu par ASP.NET afin qu'il soit transmis au client intact au cas où vous souhaitez que le code JavaScript côté client soit exécuté avant le publication.

est un WebControl qui accomplit la même chose avec l'événement OnClick Server et OnClientClick pour le côté client.

Je pense que vous obtenez le comportement que vous voyez parce que votre confirmation («Bien sûr?») Retourne False qui arrête le mécanisme de publication. Cela expliquerait pourquoi cela fonctionne lorsque vous n'avez pas d'onclick en place.


0 commentaires

1
votes

Que diriez-vous de changer les boutons Type à soumettre, cela fonctionne bien:

<button type="submit" runat="server" id="btnSubmit"
  OnServerClick="btnSubmit_Click" onclick="return confirm('Sure?');">
    Submit
</button>


2 commentaires

Essayé cela, mais alors il ne soumettrait que le formulaire qui enveloppe mon contenu HTML, ce qui n'est pas ce que j'essaie d'atteindre.


Votre formulaire va soumettre de toute façon - c'est la manière dont le serveur onClick est tiré



3
votes

J'ai eu plus de succès avec xxx


0 commentaires

3
votes

La réponse acceptée n'est pas parfaite. Si vous n'utilisez pas type = "bouton" code>, la page Web fera la publication, même si vous avez cliqué sur Annuler. La solution correcte et la plus simple est de profiter de évaluation de court-circuit et ce piratage: Remplacez ; code> avec &&! code>, comme ci-dessous.

<button id="btnSubmit"
        onclick="return confirm('Sure?') && ! __doPostBack('btnSubmit','')">


0 commentaires

1
votes

Essayez ceci:

<button type="button" runat="server" id="btnSubmit"
OnServerClick="btnSubmit_Click" onclick="if(!confirm('Sure?')) return;">
Submit
</button>


1 commentaires

Bienvenue dans le débordement de pile. S'il vous plaît, expliquez toujours pourquoi ou comment votre réponse fonctionne.



0
votes

site avant xxx

site arrière xxx


0 commentaires