2013-06-26 2 views
2

J'ai une zone de texte et je dois laisser l'utilisateur entrer seul montant d'argent, ce qui signifie que des chiffres et une virgulezone de texte ne permettent numérique et la virgule

voici ce que j'ai

<asp:TextBox ID="txt_tutar" runat="server" onkeypress="this.value=this.value.replace(/\D/g,'')"></asp:TextBox> 

ce code ci-dessus ne permet que numérique, il supprime la virgule. comment puis-je mettre à jour pour permettre à l'utilisateur d'entrer le numéro de float dans la zone de texte?

Répondre

4

Utilisez cette expression régulière:

/[^\d,]/g 

Comme dans:

this.value=this.value.replace(/[^\d,]/g,'') 

Bien sûr, cela ne signifie pas vraiment la chaîne sera une valeur numérique valide; par exemple. 2,,0,1 serait considéré comme bien. Vous devriez vraiment faire une validation complète côté serveur en utilisant decimal.TryParse ou quelque chose de similaire

+0

cela fonctionne mais je dois laisser une seule virgule –

+0

puis-je le faire du côté client? –

+2

Vous pourriez probablement, mais en général, vous devez utiliser la validation côté serveur pour toute entrée utilisateur. Il n'y a aucune garantie que vos clients utiliseront javascript ou respecteront la validation sur le client. Et bien sûr, les utilisateurs malveillants peuvent toujours publier tout ce qu'ils veulent via des requêtes HTTP brutes, rendant la validation côté client inutile. –

0

Vous pouvez également utiliser le champ validateur nécessaire pour faire ièmes,

Une meilleure façon d'aller avec javascript à côté client pour les performances, utilisez ci-dessous le script

function isValidNo(str) { 
      var inbadChars = "\t\n\r^&*=~`';<>?[]{}abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
      //debugger; 
      for (n = 0; n < str.length; n++) //filter for invalid chars 
      { 
       if (inbadChars.indexOf(str.charAt(n)) != -1) return false; 
      } 
      return true; 
     } 

Recommandé pour utiliser le tryparse côté serveur aussi, comme sur certains navigateurs, parfois les scripts peuvent ne pas fonctionner.

Questions connexes