2010-02-11 4 views
1

J'ai une page ASP.NET MVC avec code postal, numéro de téléphone & Fax.Comment activer uniquement les chiffres pour entrer dans la page Texbox ASP.NET MVC?

Maintenant, je veux désactiver toutes les autres touches et activer uniquement les chiffres du clavier lors de la saisie sur ces zones de texte.

Appréciez vos réponses. Pour l'instant, voici comment le formulaire est validé à l'aide de Validation Plugin.

Zip *

<td CssClass="Form_Value"><%= Html.TextBox("ZipCode", Model.AddressDetail.FirstOrDefault().ZipCode, new { @class = "required zip", minlength = "5"})%></td></tr> 

$ ("# frmCustDetails"). Validate ({

 rules: { 
      ZipCode: { 
       required: true, digits: true, minlength: 5, maxlength: 9 
     }, 
     messages: { 
      ZipCode: { 
       required: "please enter zipcode", digits: "please enter only digits", minlength: "Min is 5", maxlength: "Max is 9 
     } 
    }); 

Répondre

1

Vous pouvez utiliser un plugin de masque, comme this un. Vous devriez encore valider, il pensait, à la fois du côté du client et du côté du serveur

+0

J'utilise $ ("# ZipCode"). Mask ("99999"); Ça ne marche pas. Je ne sais pas s'il me manque d'autres références, j'ai téléchargé le plugin d'entrée masqué et référencé. – Rita

+0

Je n'ai pas réellement utilisé ce plugin moi-même, donc je ne pense pas que je peux vous aider beaucoup avec comment cela fonctionne. Voyez s'il y a un exemple sur le site que vous pouvez télécharger pour voir ce qui vous manque. Ou vous pouvez juste google pour "jquery entrée masquée" et vous obtiendrez beaucoup de résultats (c'est comme ça que j'ai trouvé ce plugin tout à l'heure). –

+0

D'accord. Bien sûr va essayer ça. – Rita

1

Pour éviter que certains caractères d'être entré dans une zone de texte, vous pouvez joindre un événement onkeypress à la zone de texte et return false si l'entrée recieved n'a pas répondu à vos attentes:

function validNumber(e) { 
    keyPressed = e.keyCode; 
    if (keyPressed < 48 || keyPressed > 57) { 
     return false; 
    } 

    return true; 
} 
+0

Remplacer || avec &&, sinon il retournera toujours faux. –

+0

Je pense que le contraire est vrai. keyPressed ne peut jamais être à la fois inférieur à 48 ET supérieur à 57 :) Gardez à l'esprit que je suis à la recherche de nombres en dehors de la plage sauf à l'intérieur. –

+0

Oui, désolé. Je n'ai pas pensé longtemps ici :) –

1

Juste Pour votre information: keypress retourne toujours 0 en FF. Veuillez utiliser le clavier à la place.

Questions connexes