2010-10-19 11 views
7

Tengo un cuadro de diálogo modal JQueryUI y todo funciona bien excepto por un problema ... ¿cómo puedo localizar los botones Aceptar y Cancelar? He pasado por las demostraciones y documentación y, a menos que me falta algo muy obvio, no puedo encontrar la manera de hacer esto ...Cómo localizar botones en el cuadro de diálogo modal de JQueryUI

Mi código:

$("#MyDialog").dialog({ 
. 
. 
. 
    buttons: { 
     OK: function() { 
. 
. 
. 

     }, 
     Cancel: function() { 
. 
. 
. 
     } 
    } 
}); 

Esto muestra un cuadro de diálogo con dos botones , "OK" y "Cancelar". ¿Cómo obtengo los botones para leer, por ejemplo, "Si" y "Cancellare" ..?

Lo que tengo que hacer es poder INYECTAR un valor localizado. Entonces, lo que necesito no es codificar "Si" o "Cancellare" en el código de configuración de diálogo, sino que puedo configurar el botón Aceptar para mostrar "OK" o "Si" o cualquier otro valor dependiendo de la configuración regional de la máquina del cliente.

Todo lo demás sobre el diálogo funciona bien.

Respuesta

6

Usted acaba de cambiar el nombre de la propiedad ...

var buttons = {}; 
buttons[getLocalizedCaptionForYesButton()] = function() { }; 
buttons[getLocalizedCaptionForCancelButton()] = function() { }; 

$("#MyDialog").dialog({ 
    buttons: buttons 
}); 
+0

Gracias a Ken, pero no es la respuesta que estaba buscando! Leyendo mi pregunta nuevamente no estaba claro en cuanto a lo que quería decir. Lo que necesito hacer es poder INYECTAR un valor localizado. Entonces, lo que necesito es NO TIPO "Si" o "Cancellare" como arriba pero poder configurar el botón OK para mostrar "OK" o "Si" o cualquier otro valor dependiendo de la configuración regional de la máquina del cliente. – Alfamale

+0

@Alfamale Es el mismo concepto. He actualizado mi respuesta para reflejar sus requisitos. –

1

OK, encontró la manera de hacer esto: es necesario crear un objeto con ustedes traducciones en ella (este objeto se puede pasar a la función) y luego crear un segundo objeto que vincula sus funciones de acción de los elementos de las traducciones objetos:

var translations = {}; 
translations["ok"] = "Si"; 
translations["cancel"] = "Cancellare"; 

var buttonsOpts = {}; 
buttonsOpts[translations["ok"]] = function() { 
      . 
      . 
      . 
     }; 
buttonsOpts[translations["cancel"]] = function() { 
      . 
      . 
      . 
     }; 

$("#MyDialog").dialog({ 
    . 
    . 
    . 
    buttons: buttonsOpts 
}); 

respuesta básica proporcionada por Alexey Ogarkov a la pregunta jQuery UI Dialog Buttons from variables

21

La mejor forma de localizar botones es usar el formato de matriz para la opción de botones.

$("#MyDialog").dialog({ 
    buttons: [ 
     { 
      text: "OK", 
      click: function() { ... } 
     }, 
     { 
      text: "Cancel", 
      click: function() { ... } 
     } 
    ] 
}); 

Esto hace que sea natural trabajar con etiquetas dinámicas. Con este formato, también puede especificar cualquier otro atributo, como class, disabled, etc.

http://api.jqueryui.com/dialog/#option-buttons

+0

¡Excelente! gracias ;) – themis

Cuestiones relacionadas