bien... la verdad que no sabía que titulo poner
1) estoy trabajando con prototype
2) tengo 3 funciones que andan bien con IE6, IE8 y Chrome
Pero no andan en Firefox :)
Les dejo las funciones:
Código:
// modo de uso: $('id-control').observe('keyup', enMayusculas);
function enMayusculas(evt) {
evt.srcElement.value = evt.srcElement.value.toUpperCase();
}
// modo de uso: $('id-control').observe('keyup', enMinusculas);
function enMinusculas(evt) {
evt.srcElement.value = evt.srcElement.value.toLowerCase();
}
// da formato a una fecha para que sea validada como correcta
// modo de uso: $('id-control').observe('blur', aFecha);
function aFecha(evt) {
var fecha = '';
if (evt.srcElement=='undefined') {
fecha = (arguments[1]);
}
else {
fecha = evt.srcElement.value;
}
// reemplaza los '-' por '/'
fecha = fecha.gsub('-', '/');
// completa con 0 al día y al mes
var pos1 = fecha.indexOf('/');
var pos2 = fecha.indexOf('/', pos1+1);
var dia = fecha.substr(0, pos1);
var mes = fecha.substr(pos1+1, pos2-(pos1+1));
var anio = fecha.substr(pos2+1);
if (dia.length==1) {
dia = '0' + dia;
}
if (mes.length==1) {
mes = '0' + mes;
}
// completa los primeros 2 dígitos del año
if (anio.length==2) {
var d = new Date();
d = d.getYear() + '';
if (anio>d.substr(2,2)) {
anio = '19' + anio;
}
else {
anio = '20' + anio;
}
}
// pone la fecha corregida
fecha = (dia + '/' + mes + '/' + anio).replace('//', '/');
evt.srcElement.value = fecha=='/'?'':fecha;
}
se aceptan sujerencias :)