<script type="text/javascript">
$(function () {
$('.datePicker').datetimepicker({ dateFormat: 'dd/mm/yy' });
});
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="Server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:TextBox ID="TextBox1" class="datePicker" runat="server"></asp:TextBox>
<asp:UpdatePanel ID="holder" runat="server" UpdateMode="Always" ChildrenAsTriggers="true">
<ContentTemplate>
<asp:DropDownList runat="server" ID="ddl_RespondBy" AutoPostBack="true" OnSelectedIndexChanged="ddl_SelectedIndexChanged">
<asp:ListItem Selected="True">1 Hour</asp:ListItem>
<asp:ListItem>Other</asp:ListItem>
</asp:DropDownList>
<asp:TextBox ID="txt_RespondBy" class="datePicker" Visible="true" runat="server" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddl_RespondBy" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
</asp:Content>
protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
if (ddl_RespondBy.SelectedItem.Text == "Other")
{
txt_RespondBy.Visible = true;
}
else
{
}
}
我使用更新面板进行部分回发,我有两个文本框,一个在更新面板外面,一个在内部,当我从下拉列表中选择其他内容并尝试打开txt_RespondBy文本框内的日历时,它没有显示,但更新面板外的文本框显示日历。为什么Javascript在部分回发后无法在更新面板内工作
答案 0 :(得分:13)
将datetimepicker初始化代码放在pageLoad函数中,只要页面加载(异步或同步),就会调用该函数。
<script type="text/javascript">
function pageLoad(sender, args) {
$('.datePicker').datetimepicker({ dateFormat: 'dd/mm/yy' });
}
</script>
答案 1 :(得分:2)
您可以使用pageLoad
或.live
:
参考资料: $(document).ready() and pageLoad() are not the same
<强> .live:强>
Jquery .live works but not with .datepicker
$(function(){
$('.datePicker').live('click', function() {
$(this).datepicker({showOn:'focus'}).focus();
});
});
<强>页面加载():强>
function pageLoad(sender, args) {
$('.datePicker').datetimepicker({ dateFormat: 'dd/mm/yy' });
}
答案 2 :(得分:0)
我理解这是一个古老的问题,但是如果有人现在或以后访问此页面寻求帮助,我还会在此处发布一个答案。 可以使用
$(document).on()
因为它确保了只要页面加载,控件就绑定到事件。它的工作类似于页面加载事件,但是可以说语法是不同的。几乎适用于所有这一切。我在一个面板中有50多个控件,并且所有控件都可以执行不同的任务,而且我从来没有遇到麻烦..甚至在我使用此功能时也没有遇到过。
$(document).on('eventName', 'element' , function(){
//your code to perform some task;
});
eventName可以是任何事件-例如单击,更改,选择。
还有
元素-可以是名称,类名,ID
示例-上述问题-
html-
<script src="lib/bootstrap-datepicker/js/bootstrap-datepicker.js"></script>
<input type="text" class="datePicker" data-provide="datepicker-inline" data-date-format="mm/dd/yyyy">
JavaScript-
$(function(){
$(document).on('click', '.datePicker' , function(){
$(this).datepicker();
});
});