91 votes

Comment autoriser uniquement les nombres dans une zone de texte dans mvc4 razor ?

J'ai 3 zones de texte qui prennent les valeurs code postal, numéro de téléphone mobile et numéro de résidence. J'ai trouvé la solution pour n'autoriser que le numéro dans la zone de texte en utilisant Jquery dans le post ci-dessous.

Je voudrais qu'une zone de texte "EditFor" n'accepte que les chiffres.

mais pouvons-nous faire cela en utilisant les annotations de données car j'utilise MVC4 razor ?

1voto

Ceryl Wiltink Points 599

Vous pouvez peut-être utiliser l'annotation de données [Integer] (si vous utilisez l'extension de données DataAnnotationsExtensions http://dataannotationsextensions.org/ ) . Toutefois, cette méthode ne vérifie que si la valeur est un nombre entier, et non si elle est remplie (vous pouvez donc avoir besoin de l'attribut [Required]).

Si vous activez la validation discrète, il la validera côté client, mais vous devriez également utiliser Modelstate.Valid dans votre action POST pour la refuser au cas où les gens auraient désactivé Javascript.

0voto

ar.gorgin Points 4141

Bonjour, essayez le site suivant....

<div class="editor-field">
  <%: Html.TextBoxFor(m => m.UserName, new {onkeydown="return ValidateNumber(event);" })%>
  <%: Html.ValidationMessageFor(m => m.UserName) %>
</div>

script

<script type="text/javascript">
   function ValidateNumber(e) {
       var evt = (e) ? e : window.event;
       var charCode = (evt.keyCode) ? evt.keyCode : evt.which;
       if (charCode > 31 && (charCode < 48 || charCode > 57)) {
           return false;
       }
       return true;
   };

0voto

rasika kale Points 1
@Html.TextBoxFor(x => x.MobileNo, new { @class = "digit" , @maxlength = "10"})

@section Scripts 
{
    @Scripts.Render("~/bundles/jqueryui")
    @Styles.Render("~/Content/cssjqryUi")

    <script type="text/javascript">
         $(".digit").keypress(function (e) {
            if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) 
            {
                $("#errormsg").html("Digits Only").show().fadeOut("slow");
                return false;
            }
         });
    </script>
}

0voto

Ashandra Singh Points 139

<input type="number" @bind="Quantité" class="txt2" />

Utilisez le type="nombre"

0voto

Bhushan Firake Points 4983

DataType a un deuxième constructeur qui prend une chaîne de caractères. Cependant, en interne, cela revient en fait à utiliser la fonction UIHint attribut.

L'ajout d'un nouveau type de données de base n'est pas possible puisque l'option DataType fait partie du cadre .NET. La chose la plus proche que vous puissiez faire est de créer une nouvelle classe qui hérite de la classe DataTypeAttribute . Ensuite, vous pouvez ajouter un nouveau constructeur avec votre propre DataType énumération.

public NewDataTypeAttribute(DataType dataType) : base(dataType)
 { }

public NewDataTypeAttribute(NewDataType newDataType) : base (newDataType.ToString();

Vous pouvez également passer par este lien. Mais je vous recommande d'utiliser Jquery pour la même chose.

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