2014-09-03 2 views
0

J'essaie de libérer la chose suivante:
J'ai un champ de saisie dans lequel les utilisateurs peuvent taper leur numéro de téléphone.
Les 3 premiers caractères sont fixés dans le champ d'entrée, mais peuvent être modifiés avec une liste déroulante.
par exemple. +32 xx xx xx xx (le +32 ne peut pas être changé -> empêché avec JS)Prévenir ou gérer l'action selectAll sur le focus

Ma solution n'est toujours pas complètement à l'épreuve des pannes, mais mon principal problème en ce moment est que je dois empêcher le choix de les trois premiers chiffres ...

J'ai tapés ainsi tous ce code (JQuery):
loginMobileInput.select(function(e){ if (loginMobileInput[0].selectionStart < countryCodeLength) { loginMobileInput[0].selectionStart = countryCodeLength; } });

cela fonctionne très bien, mais mon problème est que onFocus, tout get sélectionné de toute façon!
La gestion de l'événement de focus importe peu -> le selectAll arrive après ...
Prévenir le mouseUp aide d'une certaine manière, mais détruit le comportement normal de désélectionner une fois sélectionné, et n'empêche pas la sélection tout sur l'action TAB ...

Que dois-je faire pour empêcher ou gérer ce selectAll?

Merci d'avance!

Répondre

0

Voici un exemple comment pouvez-vous le faire, utilisez: keyup, keydown et changer

tous de jquery

$('#phone').keydown(function(e) { 
    if(e.which == 8) 
    { 
     if ($('#phone').val() == $('#country_code').val()) 
      return false; 
    } 
}); 

$('#phone').keyup(function(e) { 
    if ($('#phone').val().substr(0,3) != $('#country_code').val()) 
     $('#phone').val($('#country_code').val() + $('#phone').val()); 
}); 

http://jsfiddle.net/3L2qytp2/

+0

Aaah, j'oublié de mentionner ... La saisie semi-automatique devrait travail ... Cela veut dire que si, par exemple, le +44 est sélectionné par défaut, et que l'auto-complétion ajoute un numéro +32, la liste déroulante devrait sélectionner le +32 automatiquement, tandis que le nombre devrait rester ... Et fondamentalement, je J'ai réalisé tout cela avec des timeout et keyUp/keyDown/select ... mais sur focus, il est possible de tout sélectionner, et de le couper/éditer –

+0

J'ai fait une fusion avec votre code et j'ai réussi à le faire fonctionner =) J'ai donc accepté votre réponse! THX! –

Questions connexes