2009-01-13 3 views
7

Lorsque vous créez une page ASPX comme celui-ci:éviter son bip quand entrer keypress dans une zone de texte

<%@ 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> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 

     <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
     <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> 

    </div> 
    </form> 
</body> 
</html> 

comment pouvez-vous éviter le bip sonore qui se produit lorsque vous êtes dans une zone de texte et appuyez sur Entrée. D'autre part, je voudrais gérer l'événement enter onkeypress.

Tx!

+0

Ce serait une solution web, je ne serais donc pas capable de le désactiver pour chaque utilisateur. Y a-t-il un moyen de l'éviter? – user54517

+0

Quel navigateur, OS utilisez-vous? –

+0

Internet Explorer 7.0/8.0Beta et Windows Vista SP1 Mais c'est plus lié au navigateur. – user54517

Répondre

0

Si c'est lié au navigateur que votre public utilise, alors ils sont habitués, parce que cela arrive sur tous les autres sites en dehors du vôtre. Je dirais que ça ne vaut pas la peine de s'inquiéter de - genre de personnes avec JavaScript désactivé. Ils savent qu'ils l'ont éteinte, et ils sont habitués à des sites qui manquent de certaines fonctionnalités en conséquence. Vous ne pouvez pas les forcer à l'allumer, et vous ne pouvez pas les forcer à éteindre le son. C'est l'une de ces expériences que vous devez accepter dans les applications Web.

+0

ni ce que j'attendais, car je voudrais obtenir la même expérience pour tous mes utilisateurs – user54517

+0

Cela n'arrive pas sur tous les sites. C'est un résultat direct de la façon dont la page est codes comme expliqué dans d'autres réponses. –

0

Vous devez le désactiver dans vos préférences sonores sur votre système d'exploitation. C'est une chose Internet Explorer.

0

Je n'ai pas fait grand-chose dans asp, mais je pense d'abord que ce serait similaire à une application Winforms. Ma première étape pour le résoudre serait de définir la clé (code, keycode, quel que soit son nom dans l'événement) var à # 0 ou null, ainsi que tous les vars tels que e.handled dans l'appel d'événement avant de retourner.

1

Mettez dans votre balise form onkeypress="if(event.keyCode==13)return false;"

10

Tout d'abord, il est pas un comportement standard pour obtenir un signal sonore lorsque vous appuyez sur entrer dans une zone de texte sur une page Web. Essayez la page de recherche Google, ou essayez les champs Nom, E-mail et Page d'accueil au bas de cette page. Aucun bip ne retentit lorsque vous appuyez sur Entrée - dans n'importe quel navigateur.

Pour éviter que le signal sonore, gérer l'événement onKeyDown sur votre étiquette <INPUT> et return false si la touche entrée est pressée:

<input type="text" name="TextBox1" value="" onKeyDown="return StopBeepOnEnter(event)" /> 

<script type="text/javascript"> 
    function StopBeepOnEnter(event) 
    { 
     if (event.keyCode == 13) 
     { 
      // Do Whatever... 

      return false; // This stops the beep 
     } 
    } 
</script> 

Et voici la même chose en utilisant jQuery (je l'ai fait et testé cette il a résolu le problème pour moi):

<script type="text/javascript"> 
    $("#<%=TextBox1.ClientID %>").keydown(function(event) 
    { 
     if (event.keyCode == 13) 
     { 
      // Do Whatever... 

      return false; // This stops the beep 
     } 
    }); 
</script> 

J'ai trouvé la solution sur ce fil - crédit à Tharn Jaggar:

http://codingforums.com/showthread.php?t=36491

0

Enfin, je suis en mesure de désactiver le bip sonore sur tous les composants de la page tout en appuyant sur la touche Entrée dans textfield ou combo ou tout autre composant, ce qui était nécessaire. Ce que je l'ai fait est que j'ajouté [onkeypress = "if (event.keyCode == 13) return false;"] dans mon étiquette de corps comme donné ci-dessous:

<body onkeypress="if(event.keyCode==13)return false;"> 

J'utilise le code ci-dessus dans mon application GWT GXT.

Krishan Babbar

0

KeyPressEvent.preventDefault() semble faire l'affaire dans GWT

4

Un couple de choses à noter ici ...

  1. L'alerte se produira si le bouton de soumission est masqué ou s'il n'y a aucun bouton de soumission. C'est souvent le cas si vous lancez vos propres boutons <a> comme je le fais habituellement (parce que les boutons OS par défaut sont moche). Une chose que vous voudrez peut-être examiner est d'utiliser <button type="submit"></button> parce que vous pouvez les styliser beaucoup plus que les boutons d'entrée standard et ils vont gérer les événements clés organiquement.

  2. L'alerte se produira toujours si vous interceptez keyCode 13 sur keyup ou keydown. Je ne sais pas ce qu'il en est de ces événements, mais vous devez utiliser keypress. C'est ce que je fais habituellement avec jQuery au niveau mondial ...

    $("input[type=text],input[type=password]").keypress(function(e) {  
        if(e.keyCode == 13) { 
        $(this).closest("form").trigger("submit"); 
        e.preventDefault(); 
        } 
    }); 
    

    Et puis sur le piège niveau de la page I l'événement et soumettre mes routines de validation ...

    $("form").submit(function(e) { 
        var txt = $("#txtUser"); 
        if(txt.val().length == 0) { 
        alert("Who are you?"); 
        txt.focus(); 
        e.preventDefault(); 
        } 
    }); 
    
+1

Il semble se produire s'il y a plus d'une zone de texte et aucun bouton d'envoi. Et la solution qui a fonctionné pour moi est de renvoyer faux de l'événement keypress spécifiquement. –

+1

L'autre chose intéressante est que cela ne semble pas se produire si le formulaire n'a qu'une seule zone de texte. Je soupçonne qu'il s'agit d'un vestige de la fonction ISINDEX dans la première version de HTML qui traitait une seule zone de texte d'une manière spécifique ... n'y pensait pas depuis longtemps! –

Questions connexes