2010-02-14 4 views
3

En utilisant meioMask Plugin est-il un moyen de configurer un masque afin qu'il accepte l'heure valide dans 24h ou mieux encore dans le système 12h?jquery masqué éditer pour le temps

$("#txtTime").setMask('time'); 

Ce plugin a un masque de 24h « temps » prédéfini mais il est pas tout à fait correct, vous pouvez entrer des valeurs de temps non valides comme « 29:00 ». Ce masque ne convient-il pas à cette fin et si ce n'est pas le cas, lequel serait le meilleur?

+0

Vous voudrez peut-être essayer le plugin qui a tout commencé: http://digitalbush.com/projects/masked-input-plugin/ – pixeline

+1

Une mise en garde: Assurez-vous de valider le côté serveur de valeur si c'est important, Sinon, les utilisateurs peuvent pirater des formulaires personnalisés ou des chaînes de requête pour contourner la restriction. –

+1

Pas une information sensible, le temps est rarement – Victor

Répondre

13

Essayez ceci:

$.mask.rules.H = /([0-1][0-9]|2[0-3])/; // 24 hours 
$.mask.masks.time = 'H:59'; 
$("#txtTime").setMask('time'); 

Correction:

Les règles doivent être pour un seul caractère, afin d'avoir cela à l'esprit, vous pouvez échanger le masque lorsque l'entrée commence par « 2 »et valider le caractère suivant pour être [0-3]:

$("#txtTime").setMask("29:59") 
.keypress(function() { 
    var currentMask = $(this).data('mask').mask; 
    var newMask = $(this).val().match(/^2.*/) ? "23:59" : "29:59"; 
    if (newMask != currentMask) { 
    $(this).setMask(newMask); 
    } 
}); 

Remarque: Dans ce cas, j'utilise e E événement keypress, assurez-vous de gérer l'événement de collage si nécessaire.

+0

Merci pour votre réponse. On dirait que c'est un pas dans la bonne direction, mais comme il n'accepte aucune entrée du tout :-) – Victor

+0

Je vois, il me semble que le plugin meioMask utilise une validation par char, je vais vérifier si elle autorise plusieurs -char règles –

+0

Tout est bon sauf qu'il ne permettra pas certaines entrées valides qui ont 2 en eux comme j'ai essayé "23:32", ne me laisserai pas entrer le dernier "2" – Victor

Questions connexes