Domanda

Ho un modulo come questo:

<form name="mine">
    <input type=text name=one>
    <input type=text name=two>
    <input type=text name=three>
</form>

Quando l'utente digita un valore in 'uno', a volte mi vuole saltare il campo 'due', in base a quello che ha scritto.Per esempio, se l'utente tipi di '123' e utilizza Tab per passare al campo successivo, voglio saltare e andare al campo tre.

Ho provato ad usare OnBlur e OnEnter, senza successo.

Prova 1:

<form name="mine">
    <input type=text name=one onBlur="if (document.mine.one.value='123') document.three.focus();>
    <input type=text name=two>
    <input type=text name=three>
</form>

Prova 2:

<form name="mine">
    <input type=text name=one>
    <input type=text name=two onEnter="if (document.mine.one.value='123') document.three.focus();>
    <input type=text name=three>
</form>

ma nessuno di questi funziona.Sembra che il browser non consentono di pasticciare con il fuoco, mentre il fuoco sta cambiando.

BTW, tutto questo provato con Firefox su Linux.

È stato utile?

Soluzione

Provare a collegare l'attributo tabindex per i tuoi elementi, e poi programmaticaly (in javaScript cambiare):

<INPUT tabindex="3" type="submit" name="mySubmit">

Altri suggerimenti

Si potrebbe utilizzare il onfocus evento sul campo due, che sarà chiamata quando si riceve lo stato attivo.A quel punto, il campo 1 il valore deve essere aggiornato e si può eseguire il controllo.

Se si è utilizzato il metodo da te descritto, e hanno lavorato, la messa a fuoco sarebbe cambiare anche quando l'utente fa clic sul campo, invece di tabulazione per esso.Ti posso garantire che il risultato sarebbe un frustrato utente.(Perché proprio non funziona è di là di me.)

Invece, come detto prima, è possibile modificare la proprietà tabindex di appositi campi non appena il contenuto del campo cambia.

<form name="mine">
    <input type="text" name="one" onkeypress="if (mine.one.value == '123') mine.three.focus();" />
    <input type="text" name="two">
    <input type="text" name="three">
</form>

Provare onkeypress invece di onblur.Inoltre, sul onfocus di campo è dove si dovrebbe essere l'invio di tre.Sto assumendo che non si desidera digitare in due, se uno è 123, in modo che si può solo controllare che su due onfocus e inviare a tre.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top