Contenido

jQuery Alert Dialogs, reemplazo para alert(), prompt() y confirm()

31 Dic

+ 11

jQuery Alert Dialogs, ofrece un reemplazo muy elegante a las funciones alert(), prompt() y confirm() de javascript.

jquery-alert-dialogs

¿Como usarlo?

Simplemente tendremos que añadir estas líneas a nuestro <head /> y dispondremos de esta nuevo funcionalidad.

<script src="/path/to/jquery.js" type="text/javascript"></script>
<script src="/path/to/jquery.ui.draggable.js" type="text/javascript"></script>

<script src="/path/to/jquery.alerts.js" type="text/javascript"></script>
<link href="/path/to/jquery.alerts.css" rel="stylesheet" type="text/css" media="screen" />

Una vez cargados los ficheros necesarios podremos llamar a las funciones que nos mostrarán las alertas.

jAlert()

jAlert es el sustituto de alert() y nos muestra alerta básica con un botón de aceptar para que el usuario acepte que ha visto el aviso.

jAlert('This is a custom alert box', 'Alert Dialog');

jPrompt()

Sustituto de prompt() que nos da la opción de introducir un valor desde la ventana.

jPrompt('Type something:', 'Prefilled value', 'Prompt Dialog', function(r) {
    if( r ) alert('You entered ' + r);
});

jConfirm()

Alternativa a confirm() en la que ofrecemos al usuario la opción de aceptar o cancelar una acción.

jConfirm('Can you confirm this?', 'Confirmation Dialog', function(r) {
    jAlert('Confirmed: ' + r, 'Confirmation Results');
});

Demo

Para verlos funcionando podemos verlos todos reunidos en esta demo que han montado

Consejo de uso

Personalmente estas modificaciones de funciones básicas, siempre me han dado miedo ya que deberían usarse como una alternativa y los sistemas propuestos siempre suelen ser muy dependientes del script, en este caso, si por cualquier cosa no es posible ejecutar jAlert(), jConfirm() o jPrompt() dejaremos de ofrecer al usuario la alerta necesaria para nuestra aplicación, por ese motivo os propongo usas un sistema que convierta esta opción en una alternativa y que en caso de fallar nos muestre su funcionalidad original.

//alert()
var oAlert = alert;
function alert(txt, title) {
    try {
        jAlert(txt, title);
    } catch (e) {
        oAlert(txt);
    }
}
alert("Hola", "Prueba");

//confirm()
var oConfirm = confirm;
function confirm(txt, title, func) {
    try {
        jConfirm(txt, title, func);
    } catch (e) {
        if (oConfirm (txt, title)) func();
    }
}
confirm("Hola", "Prueba", function(){
	alert("Prueba", "Superada");
});

//prompt()
var oPrompt = prompt;
function prompt(txt, input, title, func){
    try {
        jPrompt(txt, input, title, func);
    } catch(e) {
        func(prompt(txt, input, title));
    }
}
prompt("Hola", "Valor", "Prueba", function(r) {
	if (r) alert(r);
});

Esto me parece estupendo. Sobre todo la pequeña solución que has propuesto por si no funciona la cosa.

Y es que los mensajes de alerta generalmente son “antiusables”. Son demasiados simples, genéricos y muchas veces no ayudan al usuario a decidir.

Lo único que le falta a este plugin es que se pueda modificar el texto de los botones (incluso un alert más genérico con hasta tres botones, como hacían los fantásticos programadores del BeOS).

Y, también, por supuesto, que devuelvan un valor de retorno igual que las funciones originales (aunque creo que eso va a ser más difícil).

Esta bastante bien este plugin. Yo uso otro plugin, jQuery modal dialog boxes que me ha dado buenos resultados

CommentFeedPor cierto, que no doy una, en el comentario anterior, quise decir que estoy de acuerdo con manz XD…
Y aprovecho para desearles un feliz año nuevo ^_^
Larga vida a aNieto2K

@Mannyatico: Lo siento, lo siento, este comentario es para el articulo anterior [http://www.anieto2k.com/2008/12/31/anieto2k-2008-recopilacion-de-este-ultimo-ano/]:$

@Rafa

ese esta Impresionante :D lo voy a probar luego, me gusto harto

Muy bueno en un rato mas lo testeare :)

saludos,

Hola anieto2k, lo que planteas es interesante, estuve probando con los cambios q suguieres, pero me he dado con la sorpresa q el confirm no funciona, sale un error a dice “espacio de pila insuficiente”.
Esto sale cuando no hago referencia a los js del jQuery.Alert.
pienso q deberia salir el clasico confirm, en el caso de Alert funciona normal sin problemas …

bueno prompt, aun no lo he probado, mas adelante será.

Gracias por las sugerencias q me plantees.
y muxas felicidades por tu blog, posteas temas inportantes …

hola…. estuve viendo tu explicacion y esta bastante clara…

no tendrias un redireccionamiento por ahi en jAlert a una url

por ejemplo Index ?

pq yo tengo un alert en un login y cuando lo paso a jalert deja la caga,,

!Q saludos

no me funciona en IE, que puede pasar?

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.