Ciao, ho tre campi testo, è possibile fare che quando si è inserito il testo della massima dimensione del campo mi vada automaticamente nel campo successivo?
Grazie
Ciao, ho tre campi testo, è possibile fare che quando si è inserito il testo della massima dimensione del campo mi vada automaticamente nel campo successivo?
Grazie
Ubuntu 10.10 x86_64
ciaocodice:<input type="text" name="campo1" onkeydown="if (this.value.length==20) this.form.campo2.focus();" />
si è possibile.. devi intercettare l'evento onkeypress su ognuno dei campi e testare in una funzione se il contenuto del campo ha raggiunto la dimensione messima, nel qual caso setti il focus sul campo successivo
<script language="javascript">
function checklunghezza(objCampo, maxlunghezza, prossimoCampo) {
if ((objCampo.value).length >= maxlunghezza)
eval(prossimoCampo).focus()
}
</script>
<input type="text" id="campo1" onKeyDown="checklunghezza(this, '4', 'campo2')">
<input type="text" id="campo2" onKeyDown="checklunghezza(this, '4','campo3')">
<input type="text" id="campo3" onKeyDown="checklunghezza(this, '4','campo1')">
Cacca!
Originariamente inviato da ilgiovo
si è possibile.. devi intercettare l'evento onkeypress su ognuno dei campi e testare in una funzione se il contenuto del campo ha raggiunto la dimensione messima, nel qual caso setti il focus sul campo successivo
<script language="javascript">
function checklunghezza(objCampo, maxlunghezza, prossimoCampo) {
if ((objCampo.value).length >= maxlunghezza)
eval(prossimoCampo).focus()
}
</script>
<input type="text" id="campo1" onKeyDown="checklunghezza(this, '4', 'campo2')">
<input type="text" id="campo2" onKeyDown="checklunghezza(this, '4','campo3')">
<input type="text" id="campo3" onKeyDown="checklunghezza(this, '4','campo1')">
Non mi funziona, non è che è perchè uso mozilla?
Ubuntu 10.10 x86_64
In effetti eval usato a quel modo puo` dare problemi.
Prova con questo modifica:
function checklunghezza(objCampo, maxlunghezza, prossimoCampo) {
if (objCampo.value.length >= maxlunghezza)
prossimoCampo.focus()
}
<input type="text" id="campo1" onKeyDown="checklunghezza(this, 4,this.form.campo2);">
<input type="text" id="campo2" onKeyDown="checklunghezza(this, 4,this.form.campo3);">
<input type="text" id="campo3" onKeyDown="checklunghezza(this, 4,this.form.campo1);">
Nota che ho tolto una serie di apici (che impedivano un corretto funzionamento conle modifiche apportate.
Ciao
Michele
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati
questo funzia con mozilla (ma non con IE):
<script language="javascript">
function checkCampi(e) {
switch ((e.target).id) {
case "campo1":
maxlength = 4
prossimoCampo = "campo2"
break;
case "campo2":
maxlength = 4
prossimoCampo = "campo3"
break;
case "campo3":
maxlength = 4
prossimoCampo = "campo1"
break;
}
if(((e.target).value).length >= maxlength)
document.getElementById(prossimoCampo).focus()
}
document.captureEvents(Event.KEYPRESS);
document.onkeypress = checkCampi;
</script>
<input type="text" id="campo1">
<input type="text" id="campo2">
<input type="text" id="campo3">
se devi farlo cross-browser devi fare all'inizio un test per vedere che browser ha il client e poi di conseguenza utilizzi un metodo o l'altro... il primo per IE e il secondo per Mozilla
Cacca!
Ciao ilgiovo, funziona ma ho dei problemi, mi fa inserire 3 caratteri anzichè 2 come specifico in "maxlength", quindi se metto maxlength=1 funziona, però se sbaglio a scrivere nel campo e torno indietro non mi lascia + scrivere 2 caratteri ma 1.
Ubuntu 10.10 x86_64
Qualcuno sa aiutarmi? please!
Ubuntu 10.10 x86_64