2010-11-27 12 views
3

J'ai une boîte de dialogue jQuery UI qui est initialiséComment actualiser les boutons modifiés dans la boîte de dialogue jQuery UI?

$('#jqDialog').dialog({ 
    autoOpen: false, 
    modal: true, 
    resizable: false, 
    buttons: { 'Ok': function() { $(this).dialog('close'); } }, 
}); 

et je veux changer les boutons programatically w/o réinitialisant l'instance plugin.

$('#jqDialog') 
    .dialog('options', 
    { 
    buttons: { 
     'Ok': function() { 
     $(this).dialog('close'); 
     store(id); 
     }, 
     'Cancel': function() { $(this).dialog('close'); } 
    } 
    }) 
    .dialog('open'); 

Lorsque la boîte de dialogue est ouverte, elle possède toujours le bouton d'origine. Avec le plugin Button, vous devez appeler .button ("refresh"). Y at-il une méthode similaire qui doit être appelée avec le plugin Dialog?

Répondre

2

Ce que vous avez juste besoin d'un coup sec, le nom de la méthode est 'option' (pas s) comme ceci:

.dialog('option', 

Cela fonctionne même lorsque l'ouverture de la boîte de dialogue, you can test it out here.

+0

Merci. Damm ces fautes de frappe .... – ChrisP

+0

@ChrisP - J'ai fait celui-ci au moins une douzaine de fois ... certainement pas nommé intuitivement :) –

0

La seule chose qui cloche dans votre code est l'utilisation du mot options au lieu de option comme dans le code suivant

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

Vous pouvez détruire la boîte de dialogue d'abord en appelant dlg.dialog de $ (« destory ») . et réévaluez la boîte de dialogue souhaitée.

+0

Cette approche supprimerait toutes les autres options déjà définies avec le dialogue. Mon but est de réutiliser le dialogue dans différentes situations. – ChrisP