2013-09-30 5 views
1

Comment puis-je détecter si l'utilisateur sélectionne le texte dans la zone <input>?keyCode ou détection pour la sélection dans la zone de texte

$('input[name=inputname]').keyup(function(e) 
{ 
    if((e.keyCode!=37)&&(e.keyCode!=38)&&(e.keyCode!=39)&&(e.keyCode!=40)) // Check whether the user is navigating inside the box by pressing the arrows 
    { 
     call_the_function(); 
    } 
}); 

Maintenant, lorsque l'utilisateur sélectionne le texte qu'il/elle a tapé à l'aide Maj + flèche gauche ou Maj + flèche droite, la fonction keyUp() exécute. Comment puis-je empêcher cela?

+1

N'avez-vous pas besoin de changer les ET "&&" en OU "||"? – 97ldave

+0

Qu'en est-il de la sélection avec la souris? C'est un problème futile à résoudre de toute façon, car je peux copier n'importe quelle valeur de la source du site si j'en ai tellement besoin. –

+0

@RoryMcCrossan: Je n'ai pas besoin d'empêcher la copie du texte. Ma question est lorsque l'utilisateur appuie sur la touche Maj avec les touches de navigation, l'événement 'keyUp()' est déclenché. J'ai besoin d'empêcher ça. Comment c'est possible? –

Répondre

0

DEMO

$('input[name=inputname]').keyup(function (e) { 
    if (event.shiftKey && ((e.keyCode >= 37) && (e.keyCode <= 40))) 
    { 
     return false; 
    }else{ 
     console.log('hi'); //call function when shift+arrow keys not pressed together 
    } 
}); 

ou

DEMO

$('input[name=inputname]').keyup(function (e) { 
    if (!(event.shiftKey && ((e.keyCode >= 37) && (e.keyCode <= 40)))) { 
     console.log('hi'); //call function when shift+arrow keys not pressed together 
    } 
}); 
0

que sur l'utilisation jquery select()

http://jsfiddle.net/kasperfish/xWEPh/

//http://api.jquery.com/select/ 
$("#target").select(function() { 
alert("Handler for .select() called."); 
}); 

vous pouvez facilement désactiver les événements KeyUp pour sélectionner avec le clavier. Cela doit être fait dans le gestionnaire d'événement keyup.

1

Essayez ceci:

$('input[name=inputname]').keyup(function(e) 
{ 
    if((e.keyCode!=16)&&(e.keyCode!=37) 
     ||(e.keyCode!=16)&&(e.keyCode!=38) 
     ||(e.keyCode!=16)&&(e.keyCode!=39) 
     ||(e.keyCode!=16)&&(e.keyCode!=40)) // Check whether the user is navigating inside the box by pressing the arrows 
    { 
     call_the_function(); 
    } 
}); 

Cela devrait vérifier la touche Maj enfoncée et soit la flèche gauche, droite, haut ou bas.

Questions connexes