2017-08-24 1 views
0

Ich arbeite gerade an einer mobilen App mit Cordova. Ich bin auf dieses Problem gestoßen, wo ich eine Funktion programmiert habe, um zu erkennen, wann immer ein Benutzer in ein Texteingabefeld getippt hat und die Eingabetaste gedrückt hat.Detect Keydown Event (Handy)

Hier ist das JavaScript-Snippet;

<script type="text/javascript"> 
    $(function() { 
     $("#searchForm").on("input", function (e) { 
      e.preventDefault(); 
     }); 
     $("input").on("keydown", function (e) { 
      if (e.keyCode === 13) { 
       var keyField = document.createElement('input'); 
       keyField.setAttribute('type', 'text'); 
       document.body.appendChild(keyField); 
       setTimeout(function() { 
        keyField.focus(); 
        setTimeout(function() { 
         keyField.setAttribute('style', 'display:none;'); 
        }, 50); 
       }, 50); 
      } 
     }); 
    }); 
</script> 

der HTML-Teil;

<form onsubmit="return false" id="searchForm"> 
    <input type="text" id="fieldOne"> 
    <input type="text" id="fieldTwo"> 
    <input type="button" value="Search" id="search" onclick="executeSearches()"/> 
</form>  

Dieser Code funktioniert die mobile Tastatur zu erreichen versteckt, aber wenn das Versteck Funktion ausführt, ist die Sicht wegen der -variable keyField bewegt wird.

Gibt es andere Möglichkeiten, diese Funktion zu erreichen, ohne dass die Ansicht verschoben wird oder kann ich irgendwie feststellen, wohin die Ansicht verschoben wird?

Antwort

1

Sie vermissen „#“, überprüfen Jquery Selektoren

$("#searchForm").on("input", function (e) { 
     e.preventDefault(); 
    }); 
+0

erwähnt, es gibt aber noch nichts an der Tatsache ändern, dass die Sicht nach dem Drücken der Taste ‚Enter‘ verschoben wird. Irgendwelche Ideen um das zu umgehen? – IlariM

Verwandte Themen