ฉันตั้งค่ากล่องโต้ตอบโมดอล jQuery UI เพื่อแสดงเมื่อผู้ใช้คลิกลิงก์ มีสอง textboxes (ฉันเพียงแสดงรหัสสำหรับ 1 เพื่อความกะทัดรัด) ในแท็ก div dialog นั้นและมันเปลี่ยนเป็น jQuery UI DatePicker textbox ที่ตอบสนองต่อการโฟกัส
ปัญหาคือกล่องโต้ตอบ jQuery UI ('เปิด') ทำให้กล่องข้อความแรกมีโฟกัสซึ่งจะกระตุ้นให้ปฏิทิน datepicker เปิดขึ้นทันที
ดังนั้นฉันกำลังมองหาวิธีที่จะป้องกันไม่ให้โฟกัสเกิดขึ้นโดยอัตโนมัติ
<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>