Ich habe eine automatische Vervollständigungssuche, in der durch Eingabe von wenigen Zeichen alle Namen angezeigt werden, die dem eingegebenen Zeichen entsprechen. Ich bevölkere diese Daten in der JSP mit DIV-Tag, mit der Maus kann ich die Namen auswählen. Aber ich möchte mit dem Auf- und Abwärtspfeil der Tastatur die Namen im DIV-Tag auswählen, die ausgewählt werden sollen. Kann mir bitte jemand aushelfen.Tastatur nach oben und nach unten Pfeile
Antwort
Ich nehme an, dass Sie einen Eingang haben, der die Eingabe behandelt.
map onkeyup-eventhandler für diese Eingabe, in der Sie event.keyCode auslesen, und tun, wenn es die entsprechenden Tastencodes für auf/ab-Pfeil (38, 40), um einen Verweis auf welchen Knoten (Element in Dein div) du bewegst den Fokus auf.
Dann rufen Sie den gleichen Handler, wenn Sie drücken Sie die Eingabetaste (keyCode 13) wie Sie onclick.
Es ist schwer, ein Coding-Beispiel zu geben, da es stark vom Kontext abhängt, aber ein Tipp zur Navigation durch div ist, uns aus .nextSibling und .previousSibling, sowie .firstChild und .childNodes zu machen.
Lange Zeit seit ich das getan habe, aber ich denke, Sie können event.keyCode
verwenden.
Wenn die zurückgegebenen Werte 38 und 40 sind, hat der Benutzer die Pfeile nach oben bzw. nach unten gedrückt.
Dann müssen Sie die Zeile über oder unter Ihrer aktuellen Position auswählen. Wie Sie die Zeile auswählen, hängt von Ihrer speziellen Situation ab.
Verwenden Sie die onkeydown
und onkeyup
Ereignisse für Tastendruckereignisse in den Ergebnissen div überprüfen:
var UP = 38;
var DOWN = 40;
var ENTER = 13;
var getKey = function(e) {
if(window.event) { return e.keyCode; } // IE
else if(e.which) { return e.which; } // Netscape/Firefox/Opera
};
var keynum = getKey(e);
if(keynum === UP) {
//Move selection up
}
if(keynum === DOWN) {
//Move selection down
}
if(keynum === ENTER) {
//Act on current selection
}
Kopie und dieses Stück Code einfügen und versuchen ..
<style>
div.active{
background: lightblue
}
</style>
<center>
<input type="text" id="tb">
<div id="Parent" style="position:absolute;display:block;left:428px; width:146px;top:38px; height:100px; border: 2px solid lightblue; overflow:auto;">
<div id="childOne">1 </div>
<div id="childOne">2 </div>
<div id="childOne">3 </div>
<div id="childOne">4 </div>
<div id="childOne">5 </div>
<div id="childOne">6 </div>
<div id="childOne">7 </div>
<div id="childOne">8 </div>
<div id="childOne">9 </div>
<div id="childOne">10 </div>
</div>
</center>
<script type="text/javascript">
var scrolLength = 19;
function autocomplete(textBoxId, containerDivId) {
var ac = this;
this.textbox = document.getElementById(textBoxId);
this.div = document.getElementById(containerDivId);
this.list = this.div.getElementsByTagName('div');
this.pointer = null;
this.textbox.onkeydown = function(e) {
e = e || window.event;
switch(e.keyCode) {
case 38: //up
ac.selectDiv(-1);
break;
case 40: //down
ac.selectDiv(1);
break; }
}
this.selectDiv = function(inc) {
if(this.pointer > 1){
scrollDiv();
}
if(this.pointer == 0)
document.getElementById("Parent").scrollTop = 0;
if(this.pointer !== null && this.pointer+inc >= 0 && this.pointer+inc < this.list.length) {
this.list[this.pointer].className = '';
this.pointer += inc;
this.list[this.pointer].className = 'active';
this.textbox.value = this.list[this.pointer].innerHTML;
}
if(this.pointer === null) {
this.pointer = 0;
scrolLength = 20;
this.list[this.pointer].className = 'active';
this.textbox.value = this.list[this.pointer].innerHTML;
}
}
function scrollDiv(){
if(window.event.keyCode == 40){
document.getElementById("Parent").scrollTop = scrolLength;
scrolLength = scrolLength + 19;
}
else if(window.event.keyCode == 38){
scrolLength = scrolLength - 19;
document.getElementById("Parent").scrollTop = scrolLength;
}
}
}
new autocomplete('tb', 'Parent');
</script>
Ich habe eine Geige basierend auf dem Code erstellt: http://jsfiddle.net/8Fj8n/ – noj
- 1. Tablesorter zeigt keine Pfeile nach oben und unten an
- 2. Machen Sie unten von UITableview mit der Tastatur nach oben
- 3. Skalierung nach oben statt nach unten?
- 4. TextView nur nach oben und unten verschieben
- 5. Fragen nach oben und unten - PHP
- 6. simulieren Sie die Cursortasten (links, rechts, nach unten, nach oben Pfeile) in einem editierbaren Div Inhalt?
- 7. UIView von unten nach oben
- 8. Verschieben Sie TreeNode nach oben, oben, unten und nach unten C#
- 9. slideDown von unten nach oben (und nicht von oben nach unten)
- 10. Ein Trick, Absatzzeile von unten nach oben und nicht von oben nach unten zu haben
- 11. Autocomplete.js funktioniert nicht mit Tastatur nach oben und nach unten Pfeiltasten
- 12. Konvertiere obere Zeichen nach unten und nach unten nach oben (umgekehrt)
- 13. Scrollen inner Div auf Schlüssel nach unten und oben
- 14. Animate div von unten in jQuery anstelle von oben nach unten nach oben
- 15. Textanzeige von unten nach oben qt
- 16. CSS3 Übergang von unten nach oben
- 17. Methoden in PhpStorm nach oben/unten verschieben
- 18. Erkennung Touch scroll nach oben oder unten
- 19. Linearer Verlauf von unten nach oben
- 20. Übergang Opazität Text oben nach unten
- 21. Drucken BST Sideway von oben nach unten
- 22. Wie div von unten nach oben bewegen
- 23. Nach oben Textfeld über der Tastatur
- 24. warum nicht meine jQuery date picker UI plugin nicht nach oben/unten Pfeile im Jahr
- 25. Scrollen nach oben löst sowohl nach oben als auch nach unten beim Scrollen
- 26. der Suche nach Zeit Aufnehmersteuersystem mit halbstündlich nach oben/unten
- 27. Tabellenzelle von oben nach unten statt von links nach rechts
- 28. Wächst mein Stapel nach oben statt nach unten?
- 29. Auswahl Listenelement (Erfassung nach unten/Pfeil nach oben)
- 30. bewegen wählen Optionen nach oben und unten über Jquery
kann u plz einige geben Beispiel, wie th zu tun ist .... –
Ok ... hier geht .. Funktion showKeyCode (e) { Warnung ("keyCode für die Taste gedrückt:" + e.keyCode); } und in Ihrem DIV-Tag rufen Sie die obige Methode wie folgt auf: onkeydown = "showKeyCode (event);" Raten Sie, das sollte funktionieren. –