web-dev-qa-db-fra.com

La boîte de dialogue jQuery ui change de titre après le rappel du chargement

J'aime changer le titre d'un dialogue d'interface utilisateur après avoir envoyé un formulaire dans ce dialogue d'interface utilisateur. Donc, dans la fonction de rappel après load, je devrais suggérer, mais j'ai essayé et googlé sans résultat.

Quelqu'un a une idée?

109
Guido Lemmens 2

Utilisation des méthodes de dialogue:

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

Ou directement, hacky cependant:

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

Pour référence future, vous pouvez ignorer Google avec jQuery. L'API jQuery répondra à vos questions la plupart du temps. Dans ce cas, la page API de dialogue . Pour la bibliothèque principale: http://api.jquery.com

255
Nick Craver

J'ai trouvé une solution plus 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'); 
});

J'espère que ça t'as aidé!

13
workdreamer

Nick Craver a perfectionné l'idée de hacky de mettre du code HTML personnalisé dans un titre de la boîte de dialogue jquery:

var newtitle= '<b>HTML TITLE</b>';
$(".selectorUsedToCreateTheDialog").parent().find("span.ui-dialog-title").html(newtitle);
3
storvas

J'ai essayé d'implémenter le résultat de Nick qui est:

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

Mais cela n'a pas fonctionné pour moi car j'avais plusieurs dialogues sur une page. Dans une telle situation, le titre ne sera corrigé que la première fois. Essayer d'agrafer les commandes n'a pas fonctionné:

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

J'ai résolu ce problème en ajoutant le titre aux arguments de la fonction javascript de chaque boîte de dialogue de la page:

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'});
}
2
Tim B.

Encore mieux!

    jQuery( "#dialog" ).attr('title', 'Error');
    jQuery( "#dialog" ).text('You forgot to enter your first name');
0
user4629979