Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在日期选择器中选择日期会触发错误事件_Javascript_Jquery_Asp.net_Javascript Events_Jquery Ui Datepicker - Fatal编程技术网

Javascript 在日期选择器中选择日期会触发错误事件

Javascript 在日期选择器中选择日期会触发错误事件,javascript,jquery,asp.net,javascript-events,jquery-ui-datepicker,Javascript,Jquery,Asp.net,Javascript Events,Jquery Ui Datepicker,我的网站上有两个元素 <asp:DropDownList CssClass="SelectionDDL" ID="ddlClientMapFilter" runat="server"></asp:DropDownList> 以及页面上的其他地方,在Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(onSynchPostBack) 现在是奇怪的部分 除了每次我使用任何一个日期选择器选择一个日期时,就会

我的网站上有两个元素

<asp:DropDownList CssClass="SelectionDDL" ID="ddlClientMapFilter" runat="server"></asp:DropDownList>
以及页面上的其他地方,在
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(onSynchPostBack)

现在是奇怪的部分

除了每次我使用任何一个日期选择器选择一个日期时,就会触发下拉事件之外,一切似乎都正常。我知道解决方案很简单,添加if并检查是否存在事件的目标是该下拉列表,但我想知道如何不触发该事件,并且我在该事件旁边附加了大量其他事件,仅触发了该事件


显然某个地方有个bug,但我不知道如何找到它。有什么想法吗?

这是因为()上的
的第二个参数(在委托语法中)必须是选择器字符串,而不是jQuery对象

$(function(){
    $(document).on("change", "#ddlClientMapFilter", function() {
         RefreshMapList();
    });
});
演示:

在演示中,第一个处理程序仅在
#x
元素更改时启动,而第二个处理程序在任何输入更改时启动

根本原因似乎是,如果第二个参数不是字符串,那么它将被视为数据参数(您可以检查事件对象的
data
属性来测试这一点)

演示:

$(function(){
    $(document).on("change", $("#ddlClientMapFilter"), function() {
         RefreshMapList();
    });
});
function OnAsychPostback(s, e) {
$("#tbFromDate").datepicker({
            defaultDate: "-1",
            changeMonth: true,
            numberOfMonths: 3,
            onClose: function (selectedDate) {
                $("#tbToDate").datepicker("option", "minDate", selectedDate);
            }
        });
        $("#tbToDate").datepicker({
            //defaultDate: "+1w",
            changeMonth: true,
            numberOfMonths: 3,
            onClose: function (selectedDate) {
                $("#tbFromDate").datepicker("option", "maxDate", selectedDate);
            }
        });
}
$(function(){
    $(document).on("change", "#ddlClientMapFilter", function() {
         RefreshMapList();
    });
});