Thursday, April 29, 2010

Problema con checkbox, IE6, IE7, IE8 y JQuery

IE no lanza el evento .change() de JQuery en checkboxes (y posiblemente, no lo testie pero dicen que tampoco en radio) en ninguna de sus versiones, como me acabo de enterar despues de renegar bastante y de buscar un poco en google ...

La "solucion" es esta:

if ($.browser.msie) {
$('#elemento').click( function () {
$(this).blur();
$(this).focus();

// hacer algo para IE
});
} else {
$('#elemento').change( function () {
// hacer algo para cualquier otro browser decente
});
}

Gracias IE por hacernos la vida imposible. Gracias.

Wednesday, April 14, 2010

Validar fechas con JQuery o Javascript teniendo en cuenta los años bisiestos

En el HTML para el siguiente codigo Javascript hay que colocar 3 elementos select (o cambiar el selector de JQuery para colocar un input) que tengan la propiedad ID nombrada a detect_month, detect_day y detect_year.
El regex obviamente se puede mejorar (o cambiar), pero lo dejo de esa forma para que se pueda reutilizar checkeando fechas en el formato mm/dd/yyyy. En si, lo importante del codigo es el checkeo de si es o no un año bisiesto.

$(function() {
var regexDateValidator = function (month, day, year) {
return (month + "/" + day + "/" + year).match(/(0[1-9]|1[012])[\- \/.](0[1-9]|[12][0-9]|3[01])[\- \/.]((?:19|20)+\d{2})/);
}

$("select[id*='detect_']").change(function () {
var result, check, month, day, year;
result = regexDateValidator(month = $('#detect_month').val(), day = $('#detect_day').val(), year = $('#detect_year').val());

if ( Boolean(result) ) {
if ( result[2] == 31 && (result[1] == 4 || result[1] == 6 || result[1] == 9 || result[1] == 11) ) {
check = false; // 31 de un mes con 30 dias
} else if (result[2] >= 30 && result[1] == 2) {
check = false; // febrero 30 o 31
} else if ( (result[1] == 2) && (result[2] == 29) && ( !(result[3] % 4 == 0 && (result[3] % 100 != 0 || result[3] % 400 == 0)) ) ) {
check = false; // febrero 29 fuera de un año bisiesto
} else {
check = true;
}
} else {
check = false;
}

if ( check ) {
// hacer algo (fecha valida)
} else {
// hacer algo (fecha invalida)
}
});
});

Ojala le resulte util a alguien ...

Saludos !

Sunday, April 4, 2010

fbinst (particionar pendrive)

Es un muy buen programa para particionar (por ejemplo, pendrives) bajo windows y es free.

http://download.gna.org/grubutil/

Lo unico es que al terminar de ejecutar los comandos hay que desmontar el pendrive y volverlo a introducir (no se como sincronizar el sistema operativo todavia).

fbinst.exe --list
fbinst.exe (hdX) format --force --raw --fat32 --size 3800m
fbinst.exe (hdX) format --force --raw --fat16 --size 1900m

Obviamente, estos son simples ejemplos de uso del programa.

Mas info en: http://www.boot-land.net/forums/index.php?showtopic=7932

Saludos !

Followers

About me

Santa Fe, Argentina
Programador Web, PHP, MySQL, JQuery, Administrador Linux. LAMP, Lighttpd, Nginx.