El cuadro de diálogo jQuery ui cambia el título después de cargar la devolución de llamada

111

Me gusta cambiar el título de un diálogo de la interfaz de usuario después de haber enviado un formulario en este diálogo de la interfaz de usuario. Entonces, en la función de devolución de llamada después de que loaddebería sugerir, pero lo intenté y busqué en Google sin resultado.

¿Alguien tiene una idea?

Guido Lemmens 2
fuente

Respuestas:

258

Usando métodos de diálogo:

$('.selectorUsedToCreateTheDialog').dialog('option', 'title', 'My New title');

O directamente, aunque hacky:

$("span.ui-dialog-title").text('My New Title'); 

Para referencia futura, puede omitir Google con jQuery. La API de jQuery responderá a sus preguntas la mayor parte del tiempo. En este caso, la página de la API de diálogo . Para la biblioteca principal: http://api.jquery.com

Nick Craver
fuente
8
Tenga en cuenta que la versión "hacky" anterior cambiará el título de TODOS los diálogos de la página (en caso de que haya creado más de uno).
camainc
1
¿Puedo pasar varias opciones?
themhz
3
@themis en la versión actual hay un .option()método que también toma un objeto, vea options(options)aquí: api.jqueryui.com/dialog/#method-option
Nick Craver
$ ("# diálogo"). dialog ({autoOpen: false, mostrar: {efecto: "ciego", duración: 1000}, ocultar: {efecto: "explotar", duración: 1000}, cerrar: función () {; }, título: "prueba"}). dialog ("abrir");
WhiteWolfza
Como mi respuesta sigue recibiendo mucha atención, también la publicaré aquí ... stackoverflow.com/a/17745795/1315125
Igor L.
14

He encontrado una solución más simple:

$('#clickToCreate').live('click', function() {
     $('#yourDialogId')
         .dialog({
              title: "Set the title to Create"
         })
         .dialog('open'); 
});


$('#clickToEdit').live('click', function() {
     $('#yourDialogId')
         .dialog({
              title: "Set the title To Edit"
         })
         .dialog('open'); 
});

¡Espero que ayude!

soñador
fuente
3

Una mejora de la idea hacky de Nick Craver para poner HTML personalizado en un título de diálogo de jquery:

var newtitle= '<b>HTML TITLE</b>';
$(".selectorUsedToCreateTheDialog").parent().find("span.ui-dialog-title").html(newtitle);
storvas
fuente
Prefiero no ser hacky cuando no tengo que hacerlo, y ya existe una forma respaldada por jquery de configurar títulos HTML: anulando el método _title. Ya está cubierto en esta respuesta SO: stackoverflow.com/questions/14488774/…
cincodenada
2

Traté de implementar el resultado de Nick que es:

$('.selectorUsedToCreateTheDialog').dialog('option', 'title', 'My New title');

Pero eso no funcionó para mí porque tenía varios diálogos en una página. En tal situación, solo establecerá el título correcto la primera vez. Intentar grapar comandos no funcionó:

    $("#modal_popup").html(data);
    $("#modal_popup").dialog('option', 'title', 'My New Title');
    $("#modal_popup").dialog({ width: 950, height: 550);

Arreglé esto agregando el título a los argumentos de la función javascript de cada cuadro de diálogo en la página:

function show_popup1() {
    $("#modal_popup").html(data);
    $("#modal_popup").dialog({ width: 950, height: 550, title: 'Popup Title of my First Dialog'});
}

function show_popup2() {
    $("#modal_popup").html(data);
    $("#modal_popup").dialog({ width: 950, height: 550, title: 'Popup Title of my Other Dialog'});
}
Tim B.
fuente
0

¡Aun mejor!

    jQuery( "#dialog" ).attr('title', 'Error');
    jQuery( "#dialog" ).text('You forgot to enter your first name');
usuario4629979
fuente
La primera línea no cambiará el título del diálogo. No existe tal atributo en el cuadro de diálogo de la interfaz de usuario de jQuery. El segundo cambiará el contenido del diálogo en sí, pero eso no es lo que el usuario estaba preguntando. Y eso suponiendo que el iddiálogo de yoru sea #dialog.
Pere