miércoles, 19 de diciembre de 2012

Error de jCarousel al hacer zoom en Chrome


jQuery jCarousel truena al hacer zoom en Chrome.

Existe un problema con el plugin jCarousel de jQuery que ocurre cuando se realiza un zoom diferente al 100% en una página utilzando Google Chrome como navegador.

Para replicar el problema se tiene que ver el jCarousel en acción dentro de Google Chrome y hacer un zoom a la página diferente al 100%.
Los elementos del carrusel se descuadran cuando el zoom es distinto del 100%, y esto produce que se vean cortadas las imágenes al estar avanzando o retrocediendo

Este problema sólo se presenta con Chrome y por lo que leí se debe a que el plugin utiliza en varias ocasiones el método this.list.css(this.lt) el cual usa window.getComputedStyle que en Chrome toma en cuenta el zoom actual de la página.

Solución.

Lo que hay que hacer es modificar el archivo jquery.jcarousel.min.js o donde tengan el plugin y quitar el uso de este método y a su vez utilizar this.list[0].style[this.lt]

Es decir, reemplazar todas las ocurrencias de this.list.css(this.lt) por this.list[0].style[this.lt] dentro del plugin jCarousel.

Osea un replace desde el editor de código que utilices. Son como seis ocurrencias que hay que reemplazar.

Así debe quedar



Con esto se soluciona el problema y el carrusel de imágenes se observa correctamente desde Chrome al
hacer zoom sobre la página.

De aquí tomé la idea principal: https://github.com/jsor/jcarousel/issues/85

Espero les sirva.







jueves, 29 de noviembre de 2012

jquery validation: cambiar mensajes de error que vienen por default

Como cambiar los mensajes de error del plugin Jquery Validator

Me encontré con el problema de querer personalizar los mensajes que tiene el plugin validator de jquery para validar formularios. La razón principal es que necesito cambiar el lenguaje a español porque por default los mensajes de error vienen en inglés.

El código lo pongo aquí abajo. Lo que se tiene que hacer es definir los mensajes de error extendiendo el plugin de jquery para personalizar los mensajes.

Este código debe ir antes de la primer llamada al método validate del formulario que estés validando.

Aquí pongo todos los mensajes que se pueden personalizar pero en mi caso sólo quiero traducir el mensaje de EqualTo para que diga "Ingresa el mismo valor."


$(document).ready(function() {
    $.extend(jQuery.validator.messages, {
        required: "This field is required.",
        remote: "Please fix this field.",
        email: "Please enter a valid email address.",
        url: "Please enter a valid URL.",
        date: "Please enter a valid date.",
        dateISO: "Please enter a valid date (ISO).",
        number: "Please enter a valid number.",
        digits: "Please enter only digits.",
        creditcard: "Please enter a valid credit card number.",
        equalTo: "Ingresa el mismo valor.",
        accept: "Please enter a value with a valid extension.",
        maxlength: $.validator.format("Please enter no more than {0} characters."),
        minlength: $.validator.format("Please enter at least {0} characters."),
        rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."),
        range: $.validator.format("Please enter a value between {0} and {1}."),
        max: $.validator.format("Please enter a value less than or equal to {0}."),
        min: $.validator.format("Please enter a value greater than or equal to {0}.")
    });
});

Después de esto ya puedes hacer los llamados al método validate del formulario

//validacion de formularios
$("#miform").validate({
rules: {
txtmailpersona: "required",
txtcmailpersona: {
 equalTo: "#txtmailpersona"
}
 },        
 messages: {
 txtnombrepersona: "*",
 txtapellidopaterno: "*",
 txtmailpersona: {
  required: "*",
  email: "El Email debe tener la forma nombre@dominio.com"
 },  
 txtcmailpersona: {
required: "*",
email: "El Email debe tener la forma nombre@dominio.com..."
 }
}
});

Les dejo aquí la referencia de donde lo encontré:

http://stackoverflow.com/questions/9371338/jquery-validation-plugin-response-messages



lunes, 9 de abril de 2012

Busque un registro en la carpeta Problemas de sincronización

He tenido un problema con mi outlook 2007. Tengo instalado el outlook connector para poder revisar mi cuenta de hotmail desde allí y he tenido problemas porque intenté enviar un archivo muy pesado. Como nunca terminó cada que lo abro sigue intentando enviar pero no me sale el correo en la bandeja de salida para poder eliminarlo.

Mirando en los detalles del envio, me dice esto:


Outlook Hotmail Connector versión 14.0.6106.5001
Cuenta: xxxxxx@hotmail.com
Inició sesión correctamente a las 09/04/2012 07:27:19 p.m.
Correo electrónico: Última actualización correcta a las 07:31 p.m.. Calendario: Última actualización correcta a las 07:31 p.m.. Contactos: Última actualización correcta a las 07:31 p.m..
Errores:
Hora: 09/04/2012 07:27:49 p.m.Error en Correo electrónicoError en la operación Enviar y recibir.Busque un registro en la carpeta Problemas de sincronización.
Hora: 09/04/2012 07:29:56 p.m.Error en Correo electrónicoError de operación de red
Hora: 09/04/2012 07:31:31 p.m.Error en Correo electrónicoError de operación de red


El problema es que no sabía donde estaba la carpeta "Problemas de sincronización."
Bien, pues buscando un poco encontré que para poder verla tienes que ir al menú Ir (Go) -> Lista de carpetas (Folder list). Haciendo click allí, podrás ver esta carpeta.

Así pude ver el correo que estaba atorado y eliminarlo.

Espero te sirva.