Comment spécifier un caractère facultatif dans un masque d'entrée?
J'ai trouvé ce plugin d'entrée masqué http://digitalbush.com/projects/masked-input-plugin/ et ces définitions de masque. p> Ceci définit un masque d'entrée pour un 12 Format de l'heure, par exemple 11h00. J'aimerais permettre à l'utilisateur de spécifier un seul chiffre pour l'heure "heure". Au lieu de devoir taper 01:00, l'utilisateur doit être capable de taper 1:00. Comment puis-je faire ça? P> p>
4 Réponses :
Vous devez utiliser ? code> pour les caractères facultatifs, donc dans votre cas, vous devez utiliser "
2? 9: 69 code>". P>
Mais cela ne permet toujours pas à l'utilisateur de spécifier un seul caractère pour l'heure. Lorsque je clique sur le champ Entrée, le masque met les minutes pour le chiffre de l'heure manquante.
Bonne prise, cela ressemble à un bug dans le plugin. Malheureusement, je ne connais pas une bonne solution pour cela à moins que vous ne modifiez le plugin lui-même.
Quote et exemple de La page Vous avez liées à votre question:
Vous pouvez avoir une partie de votre masque en option. Tout ce qui est listé après '?' Dans le masque est considéré comme une entrée d'utilisateur optionnelle. L'exemple commun Pour cela, Numéro de téléphone + extension facultative. P> blockQuote>
xxx pré> p>
Vous pouvez utiliser $. Mask.definitions ['g'] = "[0-9]"; Code> P>
J'ai un problème similaire que j'essaie de résoudre les montants de devises variables (0,00 $ - 10000,00 $), et je ne comprends pas vraiment comment le plugin fonctionne.
d'une part, le $. Mask.Définitions ['Symbole'] = '???' Code> Bit a l'air d'utiliser un fragment de regex, en fonction des exemples de référence de l'API, et un peu confirmé par cette partie dans la source, dans le
Masque Code> Code de la fonction: P>
$.each(mask.split(""), function (i, c) {
if (c == '?') {
len--;
partialPosition = i;
} else if (defs[c]) {
tests.push(new RegExp(defs[c]));
if (firstNonMaskPos == null)
firstNonMaskPos = tests.length - 1;
} else {
tests.push(null);
}
});