2009-12-17 3 views
0

J'ai une boîte de formulaire que je veux être toujours sélectionné. J'ai été en mesure de l'obtenir pour sélectionner tout dans la boîte quand il est cliqué (en utilisant onFocus = "this.select()") mais je veux qu'il soit sélectionné 100% du temps. Le texte dans la boîte changera toujours, donc j'ai essayé using onChange = "this.select()" mais cela n'a pas fonctionné. Voici ce que j'ai:this.select() et les événements javascript sur les formulaires

<form> 
    <input type="text" id="txt1" size="30" maxlength="1" 
onkeyup="showHint(this.value)" onFocus="this.select()" onBlur="this.select()" 
onChange="this.select()" value="Click here, then press a key"/> 
    </form> 

En fait, je viens d'essayer d'appeler tout dans l'espoir que quelque chose ne fonctionnerait, mais il est toujours agir comme si seulement onFocus = « this.select() » est là. Soit dit en passant, c'est pour contrôler quelque chose via le clavier, c'est pourquoi la longueur max est seulement 1. Je veux qu'il soit toujours sélectionné de sorte que quand on appuie sur une nouvelle touche, la dernière commande sera changée sans retour arrière.

Répondre

1

Y at-il une raison pour laquelle vous n'utilisez pas simplement la détection de frappe de document? Si vous avez besoin de la valeur pour apparaître dans le champ de saisie pour une raison quelconque, une fois que vous avez détecté la frappe, vous pouvez remplir la zone de texte. Ce serait beaucoup plus simple que d'essayer de rester concentré sur le terrain lui-même.

+0

J'ai essayé d'utiliser document.getElementById (id) .focus(); et document.getElementById (id) .select(); pour conserver ce qui est dans le champ de saisie sélectionné, mais je ne peux le faire fonctionner que lorsque j'utilise onClick, ce qui signifie que je dois cliquer sur le champ chaque fois que je change ce qui est dans le champ. Toute idée de comment je pourrais garder le texte sur le terrain toujours sélectionné, peu importe quoi? – blueintegral

Questions connexes