J'ai configuré une boîte de dialogue modale de l'interface utilisateur jQuery à afficher lorsqu'un utilisateur clique sur un lien. Il y a deux zones de texte (je n'affiche que le code pour 1 par souci de concision) dans cette balise div de boîte de dialogue et elle est modifiée pour devenir une zone de texte jQuery UI DatePicker qui réagit au focus.
Le problème est que la boîte de dialogue de l'interface utilisateur jQuery (`` ouverte '') déclenche en quelque sorte la première zone de texte d'avoir le focus, ce qui déclenche alors l'ouverture immédiate du calendrier du sélecteur de date.
Je cherche donc un moyen d'empêcher la mise au point de se produire automatiquement.
<div><a id="lnkAddReservation" href="#">Add reservation</a></div>
<div id="divNewReservation" style="display:none" title="Add reservation">
<table>
<tr>
<th><asp:Label AssociatedControlID="txtStartDate" runat="server" Text="Start date" /></th>
<td>
<asp:TextBox ID="txtStartDate" runat="server" CssClass="datepicker" />
</td>
</tr>
</table>
<div>
<asp:Button ID="btnAddReservation" runat="server" OnClick="btnAddReservation_Click" Text="Add reservation" />
</div>
</div>
<script type="text/javascript">
$(document).ready(function() {
var dlg = $('#divNewReservation');
$('.datepicker').datepicker({ duration: '' });
dlg.dialog({ autoOpen:false, modal: true, width:400 });
$('#lnkAddReservation').click(function() { dlg.dialog('open'); return false; });
dlg.parent().appendTo(jQuery("form:first"));
});
</script>