Je veux obtenir l'entrée en utilisant javascript ou jquery lorsque l'utilisateur appuie sur le clavier. Cela est possible lorsque le menu déroulant n'est pas affiché. Lorsque le menu déroulant est affiché, onkeypress ne sera pas déclenché.
<html>
<body>
<select id="test" onkeypress="sayHello()">
<option value="1">1234</option>
<option value="5">5678</option>
</select>
</body>
<script>
function sayHello(){
alert("Hello");
}
</script>
</html>
Je pense que ce n'est pas possible avec le menu déroulant de sélection par défaut, car le menu déroulant ouvert est créé au-dessus de la fenêtre du navigateur et ne fait pas réellement partie du document.
Vous pouvez utiliser / créer une sorte de remplacement qui rend un menu déroulant personnalisé avec des éléments html à l'intérieur du document, puis capturer tous les événements que vous souhaitez.
Par exemple, jetez un œil à Select2 . Mais il existe également de nombreuses autres bibliothèques.
Voici un exemple qui utilise select2 et alerte uniquement si un événement keydown se produit et que la liste déroulante est ouverte:
$(document).ready(function() {
$('#example').select2({
minimumResultsForSearch: 99
});
let isDropdownOpen = false;
$('#example').on('select2:open', function(event) {
isDropdownOpen = true;
});
$('#example').on('select2:close', function(event) {
isDropdownOpen = false;
});
$(document).on('keydown', function(event) {
if (isDropdownOpen) {
event.preventDefault();
alert('Hello!');
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.7/css/select2.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.7/js/select2.min.js"></script>
<select id="example" name="example">
<option value="1234">1234</option>
<option value="5678">5678</option>
</select>
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots