Plugin d'entrée jQuery masqué. sélectionner tout le contenu lorsque la zone de texte reçoit le focus
C'est une question de suivi à cette question:
sélectionnez tout le contenu de la zone de texte lorsqu'il reçoit le focus (Javascript ou jQuery)
Fondamentalement, je suis en utilisant une zone de texte en conjonction avec le jQuery masqué entrée plugin(Edit: le Lien peut ne plus de point à la version correspondante)
Lorsque le masqués zone de texte de saisie reçoit le focus, je veux sélectionner tout le contenu de la zone de texte, mais il semble comme si avoir ce plugin lié à la zone de texte de l'en empêche. Je me demandais juste si il y avait un moyen de contourner cela.
Ci-dessous est un exemple .html de la page qui illustre le problème:
<html>
<head>
<title></title>
</head>
<body>
<input id="masktest" type="text" value="01/01/2009" />
<br />
<input id="focustest" type="text" value="on focus will select all contents..." />
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="http://jquery-joshbush.googlecode.com/files/jquery.maskedinput-1.2.1.pack.js"></script>
<script type="text/javascript">
$(function() {
$("#masktest").mask("99/99/9999");
//Contents of textboxes will be selected when receiving focus.
$("input[type=text]")
.focus(function() {
$(this).select();
});
});
</script>
</body>
</html>
source d'informationauteur Jon Erickson
Vous devez vous connecter pour publier un commentaire.
Je suis l'auteur de la Masked Entrée Plugin pour jQuery. J'ai décidé que ce devrait être le comportement par défaut pour les masques et je l'ai eu dans la dernière version. Vous pouvez lire les détails ici
Hey Jon, pas trop sûr au sujet de l'exécution de cette, mais cela devrait fonctionner:
son travail pour moi dans FF3.
setTimeout sera "file d'attente" de l'sélectionnez() l'exécution, je me demandais à propos de:
- Ok masque fonctions de faire votre travail, ALORS je vais sélectionner le contenu. Qui PUIS est, où la file d'attente est utile.
Juste une idée. J'espère qu'il fonctionne comme prévu.
si votre 'terminé' ne fonctionne pas, essayez de remplacer cette ligne:
if (settings.completed && next == len)
(c'est le numéro de ligne 169 de noncompressed plugin) avec:
if (settings.completed && eval(+next - 1) == len)
Pendant l'utilisation de ce plugin avec firebug, j'ai remarqué que, "suivant" variable saute sur un symbole lors de la dernière char de masque de saisie.
De cette façon devrait fonctionner.
J'ai trouvé une meilleure solution que le délai d'attente.
Vous pouvez afficher jquery.maskedinput.js:293 il y a une fonction pour le focus d'entrée et il est déclenché uniquement sur les intrants sans "readonly" attribut afin:
$("input[type=text]").attr("readonly", true).select().removeAttr("readonly");
...juste comme ça. Fonctionne comme un charme 😉