tabIndex
Una forma fácil de setear el tabIndex de los input, es metiendo el nombre de estos campos en un array en el orden en que se quiere sean ordenados, luego se pasan por una funcion donde ésta setea los valores.
En la línea de tiempo tengo 6 campos de texto con nombre uno,dos,tres
setTabIndex = function (from,arreglo){
var largo = arreglo.length;
from--;
for( var n = 0; n < largo; n++){
arreglo[n].tabIndex = ++from
}
}
campos = [uno,seis,dos,cinco,tres,cuatro];
setTabIndex(1,campos);
stop();
En el array campos, pongo los nombres de los inputs, esto hace referencia a los mismos.
luego el argumento from de la función es el número con el que quiero que el tab index empieze.
Si se le quisiera hacer focus al primer campo, basta con poner
Selection.setFocus(campos[0]);
=)
no entiendo porque le restas uno al from y luego lo vuelves a aumentar. ademas no se porque lo colocas como argumento. yo lo haria asi:
setTabIndex = function (arreglo){
for( var i=1; i < arreglo.length+1; i++){
arreglo[i].tabIndex = i;
}
}
lo paso como argumento por si tienen ya el tabindex seteado y quieren empezar la asignacion via funcion con un numero que no sea 1;
le resto uno para que empieze en el numero justo al hacer ++from, y no tener que sumarle uno despues de la asignacion, esque era una linea mas de codigo en cada loop =D
saludillos fer.;)
aps.... ya te entendi kada...
setTabIndex = function (from, arreglo){
for( var i=from; i < arreglo.length; i++){
arreglo[i].tabIndex = i;
}
}
asi tb funciona... aunque se puede hacer para que sea opcional
setTabIndex = function (arreglo, from){
var tmp = (arguments.length < 2) ? 1: from;
for( var i=tmp; i < arreglo.length; i++){
arreglo[i].tabIndex = i;
}
}
Es buena idea kada! :)
iep, ta bien, pero lo que trato de hacer es manejar los index del array dentro del for y el tab index con otra variable, ya que si pones tmp =1, te estás saltando el index 0 del array =(, igual si quieren empezar en un índice más alto hay broncas, por eso lo manejo por aparte ;)
saludillos
kada.
Hola, estuve trasteando a partir de sus codigos y lo deje asi:
[code]
setTabIndex = function (from, arreglo) {
for (var i = 0; i<arreglo.length; i++) {
arreglo[i].tabIndex = from;
from++;
}
};
[/code]
Mas que nada le quite lo de restarle al from... pero es pura cosmetica...
está buena la idea pedro, pero algo debe andar mal porque no me jala, debe ser que flash amaneció tonto :)
setTabIndex = function (from, arreglo) {
var total = arreglo.length;
while(total) arreglo[((total--)+from)] = ((total--)+from);
}
2 lineas.. jaja... no se si funcionara.. pero se esta poniendo gracioso... jajaja
Salu2
esto de no poder editar los posts es un problema... jaja... me olvide de poner el tabIndex
setTabIndex = function (from, arreglo) {
var total = arreglo.length;
while(total) arreglo[((total--)+from)].tabIndex = ((total--)+from);
}
Salu2
ay!! que ya no se que tengo hoy dia... dos posts y dos veces que me equivoco seguidas... porfas kada borrate los posts anteriores que me da verguenza ser tan idiota...
esta es la version anterior correcta:
setTabIndex = function (from, arreglo) {
var total = arreglo.length;
while(total) arreglo[((total)+from)].tabIndex = ((total--)+from);
}
y una nueva que se me acaba de ocurrir:
setTabIndex = function (from, arreglo) {
var total = arreglo.length;
while(total) arreglo[((total--)+from)].tabIndex = ((total--)+from);
}
una linea solamente =) jajajaja!!! si alguien lo puede hacer en menos que lo postee por favor!
o mandense otra cosa como esta que esta interesante. Cya!
jajajaja!!! ya esta bien.. baneame... baneame en serio!! esto me pasa por programar despues de haber dormido... toy que te malogro el blog... jajaja... aca esta el codigo de una linea
setTabIndex = function (from, arreglo) {
for(var i=from;i<(arreglo.length+from);arreglo[i].tabIndex = i++);
}
Mil disculpas en serio!
me voy a pensar en lo mal que me he portado =P
Hola,
lo he estado mirando... y por alguna razon no me deja pegar el codigo sin deformarlo... por eso no funcionaba... prueba a ver por que lo mismo es algo del blog. En este link esta el texto que intento pegar como respuesta, pero al hacer preview veras como el codigo se estropear en el for...
http://www.unachinaenmizapato.com/ejemplos/settab/
pos... si.. que raro este error en el blog... jejeje... pues... como dice pedro veamos que cosa es mejor a ver si llegamos a los 100 posts.. jaja... o que se manden algo parecido.. una funcion mas y la pensamos entre todos en como hacerlo mas corto...
Aca va otra modificación ( ahora el from es opcional ) y sigue siendo una linea =P
setTabIndex = function (arreglo, from) {
for(var i=((from==null) ? 1: from);i<(arreglo.length+((from==null)? 1: from));arreglo[i].tabIndex = i++);
}
ya no se me ocurre que mas hacerle... ya ire pensando...
Ciao!
una línea =)
setTabIndex = function (from,arreglo){
while(arreglo[(++i)-1]) arreglo[i-1].tabIndex =(++from-1);
}
campos = [uno,seis,dos,tres,cuatro,cinco];
setTabIndex(1,campos);
Selection.setFocus(campos[0]);
stop();
Aqui esta el mio, otra variacion sobre el tema... esta vez usando un for-in, con lo que pasamos del length:
setTabIndex = function (from, arreglo) {
for (var i in arreglo) {
arreglo[i].tabIndex = Number(i)+Number(from);
}
};
xDDDDDDDDDD
y van...
no se porque la version de kada no me funciona... segun el ultimo player de mi cerebro deberia de funcionar bien...
yo lo haria asi para evitar restarle uno al from al final
setTabIndex = function (from,arreglo){
while(arreglo[(++i)-1]) arreglo[i-1].tabIndex = from++;
}
otra version, ahora con el tan olvidado do..while:
setTabIndex = function (from, arreglo){
do{ arreglo[(++i)-1].tabIndex = from++; }while((i-1) < arreglo.length - 1);
}
jejeje... creo que ya llegamos a la etapa en donde no hay mas soluciones o soluciones mas cortas... jajaja!!
Salu2 :)
POR FAVOR CONSIGANSE ALGO PARA HACER DESPUES DEL TRABAJO!!!
(0.0)
jejeje
saludos
Da gusto ponerse a nevgar y encontrar algo realmente bueno, y un sábado porla noche.
Genial señores.
gracias aleph2u,
fer.
en cuanto usar el from++, no estas usando el from que viene como parametro, sino un numero arriba.
el mio del while, ami si me funciona :(
pues... nop... prueba con un trace. El ++ a la derecha aumenta el numero en uno luego de ser utilizado...
algo asi:
var i = 0;
trace (i++); // 0
trace (i); // 1