J'ai un problème lorsque je réutilise la boîte de dialogue pour ne pas avoir à dupliquer le code. Le problème que j'ai est quand je clique sur un bouton "Ajouter un nouveau", j'ai comme bouton "enregistrer" et "annuler". Le bouton Enregistrer dans la boîte de dialogue gère la sauvegarde des informations. Si je clique sur le bouton "Modifier existant" pour modifier mes informations, je voudrais que le bouton "Enregistrer" devienne un bouton "Modifier". Est-ce possible?Modifier le bouton de la boîte de dialogue jquery
Répondre
Je pense que ce que vous essayez de faire est, au moment de l'exécution, de modifier le texte des boutons en fonction de l'action de l'utilisateur. Ce discussion impliquant Richard Worth peut aider, et c'est ce que j'ai dû utiliser pour accomplir ce que vous essayez de faire.
Fondamentalement, ce que vous essayez de faire n'est pas possible en définissant le tableau array comme un littéral d'objet (inline dans la définition du dialogue). Ce que vous devez faire est de définir votre tableau de boutons en dehors de l'initialisation de la boîte de dialogue; vos index de tableau peuvent être votre texte d'étiquette (comme vous le verrez dans l'exemple de discussion de message). Ensuite, lorsque vous initialisez le tableau, vous affectez simplement la propriété buttons à votre tableau de boutons.
En pseudo-code, vous allez faire ceci:
function createDialog(mode) { //mode=new for dayClick; edit for eventClick
var myButtons = {}; //initialize the object to hold my buttons
if (mode === "new") {
myButtons["Save"] = function() {...} //the function that does the save
} else {
myButtons["Edit"] = function() {...} //the function that edits
}
myButtons["Cancel"] = function() {...} //common cancel function for either new or edit mode
//other logic
$("#dialogAddEdit").dialog({
...
buttons: myButtons, //assign the buttons property to your myButtons array object
...
});
}
Hope this helps !!
@ D Hoerster - in Firebug, Je reçois une erreur de "mode n'est pas défini" – hersh
Où définissez-vous le mode? Dans mon exemple, il était juste pseudo-code - Je suppose que vous savez en quelque sorte quelle action l'utilisateur prend (si c'est un CRC mangé ou une action d'édition). Basé sur cela, vous branchez alors dans la section appropriée du code pour ajouter votre bouton (s). Désolé si ce n'était pas clair. Comment savez-vous si l'utilisateur essaie de créer quelque chose de nouveau ou de modifier un élément existant? –
J'utilise fullcalendar pour faire apparaître le modal ... donc sur dayClick de fullcalendar qui est un callback, qui ajouterait un évènement ... sur eventClick de fullcalendar, aussi un callback, cela éditerait et event. – hersh
Il y a une autre solution simple à faire:
il suffit de créer votre boîte de dialogue comme d'habitude, donner les deux (ou plus) les boutons d'un « mot-clé » (ici « open_key » et « cancel_key »), puis, juste après l'initialisation, définissez le texte de ces éléments HTML en utilisant une petite astuce jQuery : contains().
Exemple de code ci-dessous (pp_loca est ma fonction pour obtenir une chaîne localisée, mais pp_loca ne pouvait pas être utilisé dans les « boutons {...} » option ...
$("#dialog_open_from_server").dialog({
resizable: false,
height: "auto",
width: 600,
modal: true,
buttons: {
"open_key": function() {
$(this).dialog("close");
},
"cancel_key": function() {
$(this).dialog("close");
}
}
});
$('.ui-button:contains("open_key")').html(pp_loca('ITF_26'));
$('.ui-button:contains("cancel_key")').html(pp_loca('ITF_27'));
- 1. Définir le bouton radio dans la boîte de dialogue jquery
- 2. Boîte de dialogue jQuery UI - modifier le contenu d'une boîte de dialogue ouverte (Ajax)
- 3. Boîte de dialogue jQuery
- 4. jQuery modal texte du bouton de la boîte de dialogue
- 5. jquery UI boîte de dialogue et le bouton d'actualisation
- 6. jquery bouton de dialogue
- 7. Bouton Ajouter à la boîte de dialogue jquery ui
- 8. Comment modifier/ajouter le texte de la boîte de contrôle d'édition dans cette boîte de dialogue lorsque j'ai appuyé sur le bouton dans la boîte de dialogue
- 9. Hauteur de la boîte de dialogue JQuery
- 10. Boîte de dialogue jQuery: bouton de fermeture alternatif
- 11. Boîte de dialogue de confirmation jQuery UI - manipuler la sortie
- 12. Positionnement de la boîte de dialogue jQuery
- 13. ASP: Bouton ne fonctionne dans une boîte de dialogue jquery
- 14. Centrer un dialogue JQuery Boîte
- 15. Boîte de dialogue de confirmation JQuery
- 16. Boîte de dialogue JQUERY UI
- 17. La boîte de dialogue jQuery UI close n'efface pas la boîte de dialogue
- 18. Le bouton ne postback pas dans la boîte de dialogue jQuery à l'intérieur de UC
- 19. Question de boîte de dialogue JQuery
- 20. Boîte de dialogue jquery UI expand
- 21. jQuery Confirmer la boîte de dialogue dans le bouton ASP.NET OnClientClick
- 22. jquery comment obtenir le bouton qui a ouvert la boîte de dialogue
- 23. Comment empêcher la boîte de dialogue jQuery UI de modifier la mise en page d'arrière-plan?
- 24. jquery bouton de dialogue ui
- 25. jQuery UI ferme le dialogue dynamique ... ou juste la boîte de dialogue ouverte
- 26. Paramétrer une boîte de dialogue jQuery
- 27. iReport ajouter/modifier la boîte de dialogue des variables
- 28. Boîte de dialogue jquery: faire glisser la boîte de dialogue avec iframe à l'intérieur
- 29. jQuery UI - Boîte de dialogue transmettant des options d'effets personnalisées à la boîte de dialogue
- 30. Boîte de dialogue jQuery UI empilée
Il est difficile de dire Je considérerais l'insertion de la clé primaire de l'enregistrement en cours d'édition - en mode d'édition - et ensuite le code du serveur gérerait l'absence (ou la présence) de ce champ – Wayne