Dépannage des événements de clic sur le bouton ASP.NET dans les boîtes de dialogue de l'interface utilisateur jQuery
Cet article traite d'un problème courant : les boutons ASP.NET dans une boîte de dialogue jQuery UI ne parviennent pas à déclencher leurs gestionnaires d'événements de clic côté serveur. Même déplacer le div de la boîte de dialogue dans le formulaire ne résout pas le problème.
Comprendre le problème
La cause première est souvent un problème de fermeture dans le code jQuery. Lors de la création de la boîte de dialogue à l'aide de jQuery("#dialog").dialog({...})
, l'objet jQuery représentant la boîte de dialogue est piégé dans la fermeture. Les tentatives ultérieures de manipulation de la boîte de dialogue, telles que jQuery("#dialog").parent().appendTo(jQuery("form:first"))
, échouent car l'objet correct n'est pas référencé.
La solution : un référencement d'objet approprié
La solution consiste à stocker l'objet de dialogue jQuery dans une variable en dehors de la portée de la fermeture. Cela permet un accès et une manipulation continus après la création de la boîte de dialogue. Voici le code corrigé :
<code class="language-javascript">jQuery(function() { var dlg = jQuery("#dialog").dialog({ draggable: true, resizable: true, show: 'Transfer', hide: 'Transfer', width: 320, autoOpen: false, minHeight: 10, minWidth: 10, }); dlg.parent().appendTo(jQuery("form:first")); });</code>
En attribuant l'objet jQuery à la variable dlg
, les opérations ultérieures sur l'élément de dialogue, y compris celles cruciales pour la fonctionnalité de publication, cibleront correctement la boîte de dialogue, permettant aux gestionnaires d'événements de clic de bouton côté serveur de fonctionner comme prévu.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!