2012-06-25 21 views
7

Ich versuche, den Fokus auf eine versteckte Textbox zu setzen. Ich will, dass, wenn der Körper oder das div, der das Textfeld enthält, der Fokus auf dem bestimmten Textfeld sein sollte, damit jede Eingabe von der Tastatur oder einem anderen Gerät von diesem Element gefangen wird. Ich habe den folgenden Code ohne Effekt ausprobiert:versuchen, den Fokus auf eine versteckte Textbox zu setzen

<body> 
    <input type="text" id="exp" maxlength="16"></input> 
    <input type="text" id="exp2" maxlength="16"></input> 
    <script> 
     $("#exp").hide(); 
     $("#exp").focus(); 
     $("#exp2").keypress(function(){ 
      alert($("#exp").val()); 
     }); 
    </script> 
</body> 

machen Sie irgendwelche Vorschläge. jquery Lösung wird bevorzugt.

+1

Versteckte Elemente können vom Design nicht fokussiert werden. Was genau erwartest du? Sie können den Fokus einstellen, wenn er noch sichtbar ist, und ihn dann ausblenden. –

+1

Verstecktes Element hat Anzeige: keine; also wie können sie sich konzentrieren .by Barbosa –

+0

Ich kann mir nicht vorstellen, warum du das machen willst. Plus-Eingabe-Tags sind selbstschließende Tags.

Antwort

12

Sie können den Fokus nicht auf ein Textfeld setzen, das durch die Methode hide ausgeblendet wird. Stattdessen müssen Sie es vom Bildschirm verschieben.

<body> 
<!-- it's better to close inputs this way for the sake of older browsers --> 
<input type="text" id="exp" maxlength="16" /> 
<input type="text" id="exp2" maxlength="16" /> 
<script> 
// Move the text box off screen 
$("#exp").css({ 
    position: 'absolute', 
    top: '-100px' 
}); 
$("#exp").focus(); 
$("#exp2").keypress(function(){ 
alert($("#exp").val()); 
}); 
</script> 
</body> 
+0

Dadurch wird #exp nie in der Lage sein, zum vorherigen Platz zurückzukehren –

+0

Normalerweise möchten Sie kein verstecktes Textfeld, das verwendet wird, um Schlüssel zu erfassen, um wieder in Sicht zu kommen. Aber Sie können es an seinen vorherigen Platz zurückbringen: '$ ('# exp'). Css ('position', 'static');' –

+0

Das entspricht meinen Anforderungen ... obwohl es nicht das war, wonach ich suchte. ..sit ein bisschen von der Box Lösung ....:) ... danke trotzdem ... –

1
visibility:hidden; 
position: absolute; 

Arbeiten in Chrome 53 und scheinen sauberer als zu versuchen, das Element außerhalb des Bildschirms, wie in Nathan Wall Antwort zu verschieben.

Verwandte Themen