जब कोई उपयोगकर्ता किसी लिंक पर क्लिक करता है, तो मैंने उसे प्रदर्शित करने के लिए jQuery UI मोडल संवाद सेटअप किया है। उस डायलॉग डिव टैग में दो टेक्स्टबॉक्स होते हैं (मैं केवल 1 के लिए 1 संक्षिप्तता के लिए कोड दिखाता हूं) और इसे jQuery UI DatePicker टेक्स्टबॉक्स में बदल दिया जाता है जो फोकस पर प्रतिक्रिया करता है।
समस्या यह है कि jQuery यूआई डायलॉग ('ओपन') किसी तरह फोकस करने के लिए पहले टेक्स्टबॉक्स को ट्रिगर करता है, जो फिर तुरंत खोलने के लिए डेटपिकर कैलेंडर को ट्रिगर करता है।
इसलिए मैं फोकस को अपने आप होने से रोकने का तरीका ढूंढ रहा हूं।
<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>