因此,在这个母版页站点中,我在主页中包含了下面的内容,以便在所有在id中包含“日期”的文本框中启用数据交换。
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js" type="text/javascript"></script>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="Stylesheet" type="text/css" />
<script type="text/javascript">
function pageLoad(sender, args) {
$(document).ready(function () {
$("[id*='Date']").datepicker({
showOn: 'button',
buttonImageOnly: true,
buttonImage: 'http://jqueryui.com/resources/demos/datepicker/images/calendar.gif'
});
$("[id*='Date']").click(function () {
$("[id*='Date']").datepicker('show');
});
});
}
</script>
这在只有一个这样的文本框的页面上很好。但是,在具有多个日期时文本框(txtStartDate和txtCompletionDate)的页面上,如果单击第一个文本框,第二个文本框将获得焦点,并随后收到从日历弹出的值。如果单击文本框旁边的日历图标或选择第二个文本框,则不会发生此问题。如果我在选择器中特别声明文本框ID的全名,也不会发生此问题。
发布于 2014-07-10 23:48:12
您需要使用this
,它引用事件处理程序中调用事件的元素。
使用
$("[id*='Date']").click(function () {
$(this).datepicker('show');
});
而不是
$("[id*='Date']").click(function () {
$("[id*='Date']").datepicker('show');
});
https://stackoverflow.com/questions/24692579
复制