3 votes

est-il possible de désactiver le comportement d'envoi d'un bouton côté serveur à l'aide de Javascript ?

Est-il possible de désactiver le comportement d'envoi d'un bouton côté serveur à l'aide de Javascript ? Note : Je ne veux pas désactiver le bouton, l'utilisateur cliquera sur le bouton mais il ne soumettra pas/ne recevra pas de valeur du serveur.

scénario :

 <asp:Button ID="Button1" runat="server" Text="Submit"  onclick="Button1_Click"  OnClientClick="Check()" />

javascript :

function Check() 
{
  var res = confirm(" Are u sure whatYou have selected ")
  if (res) 
  {
    alert("yes");
  }
  else {
    //Here I need to disable the submit behavoiur                        
  }
 }
}
}

9voto

cjk Points 27463

Vous devez vous assurer que UseSubmitBehavior est défini sur false dans le balisage, puis vous devez vous assurer que vous renvoyez false avant que le javascript de postback soit appelé.


Edita:

Vous devriez retourner la valeur de votre fonction, puis dans la fonction retransmettre true si vous voulez un postback, et retourner false si vous ne le voulez pas.

<asp:Button ID="Button1" runat="server" Text="Submit"  onclick="Button1_Click"  
  OnClientClick="return Check();" UseSubmitBehavior="false" />

Javascript :

function Check()
{
     return confirm(" Are u sure whatYou have selected ");
}

3voto

jrharshath Points 10422

Sûr : renvoyer false depuis le gestionnaire de clic du bouton submit.

1voto

Ólafur Waage Points 40104
<input type='submit' onclick='return false;' />

Quelque chose comme ceci (si cela n'est pas fait d'une manière différente dans asp.net.

0voto

SillyMonkey Points 1078
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
    <script>
    function dostuff() {
    alert('hello');
    }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <% =DateTime.Now.ToString() %>
        <asp:Button ID="Mybutton" runat="server" UseSubmitBehavior="false" Text="Click"
        OnClientClick="dostuff(); return false;" />
    </div>
    </form>
</body>
</html>

0voto

aleemb Points 12138

Je ne recommanderais pas les autres approches car elles posent deux problèmes :

  1. Le Javascript ne doit pas être intégré dans le HTML. C'est tout simplement une erreur de forme et c'est maintenant une pratique obscure. Il y a beaucoup de discussions à ce sujet.
  2. Cliquer sur le bouton d'envoi n'est pas la seule façon de soumettre un formulaire. Si l'utilisateur appuie sur le bouton Entrée, vous avez toujours un problème car le gestionnaire onclick ne sera pas déclenché du tout.

Dans votre cas, il vous suffit d'inclure ce qui suit dans votre fichier else bloc :

document.getElementById("YourFormId").onsubmit = function() { return false; }

L'événement se trouve donc sur votre formulaire, pas sur votre bouton, et c'est un événement onsubmit.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X