Contenidos - Mapa de la Web - Contactos - Enlaces a otras webs  
Formularios
- Validaciones
- Salto automático

- Búsqueda en SELECT
- Envío de correos
- Paso de parámetros

 
Entradas
- Eventos del ratón
- Eventos del teclado

 
Capas
- Movimientos
- Manejadores
- Escrituras

 
Sonidos
- Músicas Midi
- WaveAudio

 
Saltos de campo automaticos
     Una de las cosas que más suelen pedir los usuarios es la rapidez a la hora de recibir sus pedidos. Éste script ayuda al que teclea a realizar las órdenes más deprisa, sin necesidad de pulsar el tabulador cada vez que quiera cambiar de campo.


Codigo para saltar los campos
     A continuación expongo el código que obtuve después de 'pelearme' con los navegadores para que funcionara correctamente tanto en Netscape como en Internet Explorer:
var modificar=false;
var salto=false;
var formulario;
var foco=false;
var valor_campo="";

function Modificar(e) {
e.select();
modificar=true;
foco=true;
}

function inh_Modificar() {
if (foco==false)
	modificar=false
else
	foco=false;
}

function PonerValorCampo(e) {
valor_campo=e.value;
}

function ComprobarMaximoIE(form,num,longitud) {
if (navigator.appName.indexOf("Netscape")!=-1) return
if ((form.elements[num].value.length+1>=longitud) &&
!(modificar)) {
	salto=num+1;
	formulario=form;
	}
if (modificar) {
	modificar=false;
	}
}

function Saltar() {
if (navigator.appName.indexOf("Netscape")==-1) {
	if (salto) 
		formulario.elements[salto].focus(); 
	salto=false;
	}
}

function ComprobarMaximoNS(form,num,longitud) {
if (navigator.appName.indexOf("Netscape")==-1) return
if ((form.elements[num].value.length+1>=longitud) && 
!(modificar))
	form.elements[num+1].focus();
if (modificar) {
	modificar=false;
	}
}
     Las entradas para ComprobarMaximo** son:
(this.form, nºcampo comenzando en el 0, tamaño maximo del campo en caracteres)

     El siguiente código es un ejemplo en HTML de los formatos que se utilizan para llamar a las funciones de salto:
<input onKeyPress="ComprobarMaximoIE(this.form,0,5)" 
onClick="inh_Modificar()" 
onKeyUp="Saltar()" 
onKeyDown="ComprobarMaximoNS(this.form,0,5);PonerValorCampo(this)" 
onFocus="Modificar(this)" 
type="text" size="5" maxlength="5">

<input onKeyPress="ComprobarMaximoIE(this.form,1,5)" 
onClick="inh_Modificar()" 
onKeyUp="Saltar()" 
onKeyDown="ComprobarMaximoNS(this.form,1,5);PonerValorCampo(this)" 
onFocus="Modificar(this)" 
type="text" size="3" 
maxlength="5">

<input onKeyPress="ComprobarMaximoIE(this.form,2,8)" 
onClick="inh_Modificar()" 
onKeyUp="Saltar()" 
onKeyDown="ComprobarMaximoNS(this.form,2,8);PonerValorCampo(this)" 
onFocus="Modificar(this)" 
type="text" size="8" 
maxlength="8">

<input onKeyPress="ComprobarMaximoIE(this.form,3,4)" 
onClick="inh_Modificar()" 
onKeyUp="Saltar()" 
onKeyDown="ComprobarMaximoNS(this.form,3,4);PonerValorCampo(this)" 
onFocus="Modificar(this)" 
type="text" size="4" 
maxlength="4">

<input type="text" 
size="5" onClick="inh_Modificar()" 
onFocus="Modificar(this)" maxlength="5">
     Hay que poner especial hincapié en el último campo, que es distinto a los demás ya que desde él no se salta a ningún lado. Lo siguiente es un ejemplo de ello:
- - - -
Última modificación el