2010-11-29 11 views
9

¿Hay alguna manera de agregar un botón a un cuadro de diálogo en jquery ui dinámicamente?Agregue un botón a un cuadro de diálogo de forma dinámica

He intentado usar: $ (this) .add ("button");

+0

Bienvenido a SO! ... Kut lea las preguntas frecuentes http://stackoverflow.com/faq y acepte las respuestas que lo asistieron. –

+0

¿Por qué querrías hacer eso de todos modos? Si desea habilitar ciertas acciones basadas en cambios en el cuadro de diálogo, debe habilitar/deshabilitar botones existentes, no anexando botones nuevos. – aditya

+0

@aditya: incluso pensé que ... entonces, ¿hay alguna forma de cambiar dinámicamente el valor de un botón ... – Kut

Respuesta

9

Esto se responde a la derecha en la página jQuery UI para el diálogo ... http://jqueryui.com/demos/dialog/ (pestaña haga clic en "Opciones", luego en el enlace de "botones")

"Obtener o establecer la opción botones, después de init". ..

$(".selector").dialog("option", "buttons", { 
"Ok": function() { $(this).dialog("close"); } 
}); 

Simplemente agregue el selector apropiado (el elemento que esté utilizando como diálogo), y debería estar listo para continuar.

-3

Puede usar jQuery html() para añadir algo de código HTML en su diálogo

Ex:. $ ('# su-diálogo-id') html ('');

Más información: http://api.jquery.com/html/

21

A veces desea agregar los botones más tarde también.

var mydialog = ... result of jqueryui .dialog() 
var buttons = mydialog.dialog("option", "buttons"); // getter 
$.extend(buttons, { foo: function() { alert('foo'); } }); 
mydialog.dialog("option", "buttons", buttons); // setter 
+0

Muy útil, gracias! –

+0

Clever. Sin embargo, esto parece sobrescribir cualquier botón que ya haya sido instanciado. Pensé que $ .extend() simplemente agregaría los nuevos botones junto con los existentes. –

+0

Sí, sobrescribe los botones. Es por eso que es necesario OBTENER la colección de botones, agregar uno nuevo usando EXTEND y luego volver a aplicar la colección. http://jsfiddle.net/Z8pZt/ – JJS

Cuestiones relacionadas