Comment valider US ZIP code à l'aide de jQuery plugin de Validation
Je suis en utilisant le plugin jQuery Validation pour la validation de mon formulaire.
Je veux valider le code postal comme par US Postal format :-
> 12345
> 12345-6789
> 12345 6789
Comme pour mon actuelle code son valider le code postal doit être au maximum de 5 et tous numériques.
Veuillez voir le code ci-dessous:
<script src="~/Scripts/js/jquery.validate.js"></script>
<script>
$().ready(function () {
//validate signup form on keyup and submit
$("#locationSetup").validate({
rules: {
'Address.AddressStreet': "required",
'Address.City': "required",
'Address.State.Country.CountryIsoCode': "required",
'Address.State.SubnationalIsoCode': "required",
'Address.PostalCode': {
required: true,
minlength: 5,
maxlength: 5,
digits: true
}
},
messages: {
'Address.AddressStreet': "Please enter your Street Address!",
'Address.City': "Please select your City!",
'Address.State.Country.CountryIsoCode': "Please select your Country!",
'Address.State.SubnationalIsoCode': "Please select your State!",
'Address.PostalCode': {
required: "Please enter your Postal Code!",
minlength: "Your Postal Code must be 5 numbers!",
maxlength: "Your Postal Code must be 5 numbers!",
digits: "Your Postal Code must be 5 numbers!"
}
}
});
});
</script>
@using (Html.BeginForm(Model.Step.ToString(), "Provision", FormMethod.Post, new Dictionary<string, object> { { "id", "locationSetup" } }))
<table width="100%" id="locInfo">
<colgroup>
<col width="30%" />
<col />
</colgroup>
<tr>
<th><label>@AddressResource.COUNTRY_LABEL_TEXT:</label> <span class="redtext">(Required)</span></th>
<td>
@* @Html.HiddenFor(m => m.Address.State.Country.CountryIsoCode)*@
@Html.DropDownListFor(m => m.Address.State.Country.CountryIsoCode, ProvisioningHubProxy.GetCountriesList(),
htmlAttributes: new { @id = "Countries", @name = "Countries" })
</td>
</tr>
<tr>
<th> <label>@AddressResource.STATES_LABEL_TEXT:</label><span class="redtext">(Required)</span></th>
<td> @Html.DropDownListFor(m => m.Address.State.SubnationalIsoCode, ProvisioningHubProxy.GetStatesList(),
htmlAttributes: new { @id = "States", @name = "States" })</td>
</tr>
<tr>
<th><label>@AddressResource.CITY_LABEL_LABEL_TEXT:</label><span class="redtext">(Required)</span></th>
<td> @Html.TextBoxFor(m => m.Address.City, htmlAttributes: new { @name = "City", @id = "City" })</td>
</tr>
<tr>
<th> <label>@AddressResource.STREET_NAME_LABEL_TEXT:</label><span class="redtext">(Required)</span></th>
<td>@Html.TextBoxFor(m => m.Address.AddressStreet, htmlAttributes: new { @name = "StreetName", @id = "StreetName" })</td>
</tr>
<tr>
<th><label>@AddressResource.US_POSTAL_CODE_LABEL_TEXT:</label><span class="redtext">(Required)</span></th>
<td>@Html.TextBoxFor(m => m.Address.PostalCode, htmlAttributes: new { @name = "ZipCode", @id = "ZipCode", @required = "required" })</td>
</tr>
</table>
}
S'il vous plaît suggérer.
- double possible de plugin jQuery validation: accepter uniquement les US, le Canada et Mexic zip code?
- Il y a déjà une règle appelée
zipcodeUS
à l'intérieur de leadditional-methods.js
fichier.
Vous devez vous connecter pour publier un commentaire.
Ajouter un validateur personnalisé:
_If vous souhaitez accepter les espaces1 entre le code postal, l'utilisation
/^\d{5}(?:[\s-]\d{4})?$/
pour le modèle de la place.puis le spécifier dans vos options:
Noter que l'extension de la bibliothèque additional-methods.js a un
zipcodeUS
validateur ainsi (mais sauf si vous utilisez l'un de l'autre de ceux qu'il ne peut faire sens pour l'inclure).1 d'Après les specs, correctement mis en forme les codes postaux composé de cinq (5) chiffres ou de cinq (5) numéros de disciple par un trait d'union (-) et de quatre (4) numéros supplémentaires. Un espace ne devrait pas techniquement être acceptable, mais je vais vous donner le modèle, peu importe.
Il suffit d'inclure le
additional-methods.js
fichier et l'utilisation de lazipcodeUS
règle.Si vous ne souhaitez pas inclure la
additional-methods.js
de fichiers, vous pouvez copier la méthode suivante dans votre code...validator
n'est pas défini. Il signifie simplement que vous n'avez pas correctement le plugin jQuery Validation.Vous pouvez définir un validateur personnalisé:
Puis l'utiliser comme ceci
Code postal routines de validation sont en additional-methods.js mais je voudrais vous demander pourquoi vous demander des informations par pays si vous allez à invalider la forme, pour tous les pays autres que les états-unis? Rappelez-vous que seulement environ 5% de la population mondiale utilise un US postal. Je vous recommande de vous rendre le code postal routines de validation dépend du pays sélectionné par l'utilisateur.