2012-04-10 9 views
0

Ich habe viele Lösungen gefunden, wie zu ersetzen Enter mit Tab-Taste, aber ich muss Tab simulieren und eingeben, bitte help:Wie simuliere Tab und Enter-Taste, wenn Eingabe gedrückt wird, vorzugsweise in JavaScript

Ich habe ein Eingabefeld und dann eine Liste von Links (die Liste wird durch die Eingabe gefiltert). Wenn ich mit dem Tippen fertig bin und die Eingabetaste drücke, möchte ich, dass der erste Link "angeklickt" wird. Ich gehe davon aus, dass ich eine Tabulatortaste vor der Eingabetaste simulieren kann, aber wie mache ich das?

Gibt es noch andere Alternativen? Diese

ist das, was ich habe:

<input type="text" id="search_filter" style="COLOR: #999" onFocus="if (this.value == 'sometext') {this.value=''; this.style.color='#000';}" name="filter" value="someothertext" /> 
     <div id="links">  
      <ul> 
       <li><a href="someurl">Link 1</a></li> 
       <li><a href="someurl">Link 2</a></li> 
       <li><a href="someurl">And so on</a></li> 
      </ul> 
     </div> 

Dank!

+0

würde mich freuen, wenn Sie etwas von Ihrem Code einschließlich DOM-Struktur teilen. – codef0rmer

Antwort

0
<input type="text" id="input1"/> 
<a href="someUrl">Link</a> 

<script> 

    $(function(){ 
      $("#input1").keypress(function(event){ 
       var ENTER = 13; 
       if (event.which == ENTER) { 
        $(this).next("a").click(); 
        e.preventDeafult(); 
        return false; 
       } 
      }) 
    }) 
</script> 
+0

Danke Yorgo! Leider funktionierte das nicht für mich .. – Flejak

+0

ich ändere es. Bitte versuchen Sie es erneut – Yorgo

0

passen von der Differenz zwischen keypress und keydown. Keypress feuert nicht auf einige Tasten. Also hier ist meine Implementierung mit jQuery und keydown:

editorField.keydown(function(e) { 
     switch (e.keyCode) { 
     //13 for Enter 
     case 13: 
      saveCell(); 
      break; 

     case 40: //I don't remeber which one of those is 'tab'. 
     case 9: //The other should be right arrow 
      cell.parent().next().find('td.value').dblclick(); 
      return false; 
      break; 
     default: 
      break; 
     } 
    }); 

dies ist mein Code für die Inline-Zelle Bearbeitung aber hoffentlich werden Sie es an Ihre Bedürfnisse anpassen.

Verwandte Themen