Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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
Jquery AJAX重新加载后日期选择器不工作_Jquery_Datepicker - Fatal编程技术网

Jquery AJAX重新加载后日期选择器不工作

Jquery AJAX重新加载后日期选择器不工作,jquery,datepicker,Jquery,Datepicker,我在一个div中有一个非常复杂的日期选择器,在提交后用AJAX重新加载,但是在提交(和页面的AJAX重新加载)之后,日期选择器不再工作 日期选择器代码: dates[x] = $( "#from_"+x+", #to_"+x ).datepicker({ dateFormat: "dd-mm-yy", numberOfMonths: 3, showWeek: true, maxDate: max_date_ini,

我在一个div中有一个非常复杂的日期选择器,在提交后用AJAX重新加载,但是在提交(和页面的AJAX重新加载)之后,日期选择器不再工作

日期选择器代码:

        dates[x] = $( "#from_"+x+", #to_"+x ).datepicker({ 
        dateFormat: "dd-mm-yy",
        numberOfMonths: 3,
        showWeek: true,
        maxDate: max_date_ini,
        minDate: min_date_ini, 
        beforeShow:function legen_array() {
            var from_of_to = this.id.indexOf("from_") != -1 ? "from" : "to";
            //eerst een check of er niet nog een datepicker periode half gevuld is (want dan is overlap mogelijk)
            if (periode_half_gevuld != x && periode_half_gevuld != 0){
                alert('Er is nog een periode niet geheel ingevuld, er is alleen een vanaf of alleen een tot datum ingevuld. Maak deze periode eerst compleet of maak hem leeg door op verwijderen te klikken');
                return false;           
            }
            var date_from_open = $("#from_"+x).val();
            var date_to_open = $("#to_"+x).val();
            var timestamp_from_open = Date.UTC(date_from_open.substring(6,10),date_from_open.substring(3,5)-1,date_from_open.substring(0,2))/1000;
            var timestamp_from_open_teller = Date.UTC(date_from_open.substring(6,10),date_from_open.substring(3,5)-1,date_from_open.substring(0,2))/1000;
            var timestamp_to_open = Date.UTC(date_to_open.substring(6,10),date_to_open.substring(3,5)-1,date_to_open.substring(0,2))/1000;
            //als from en to gevuld zijn dan eerst deze waardes uit array halen (Anders kan 1 dag verder of terug niet gekozen worden)
            if (timestamp_from_open > 0 && timestamp_to_open > 0){
                geselecteerde_vanaf_datums.splice( $.inArray(timestamp_from_open,geselecteerde_vanaf_datums), 1 );
                geselecteerde_tot_datums.splice( $.inArray(timestamp_to_open,geselecteerde_tot_datums), 1 );
                while (timestamp_from_open_teller <= (timestamp_to_open+1)){
                    datums_niet_beschikbaar.splice( $.inArray(timestamp_from_open_teller,datums_niet_beschikbaar), 1 );
                    timestamp_from_open_teller = timestamp_from_open_teller + 86400;                    
                }
                if (this.id.indexOf("from_") == 0 && $("#to_"+x).val() != '' && geselecteerde_tot_datums.length >= 1){
                    var min_datum = new Date (getNextMinVal(geselecteerde_tot_datums, timestamp_to_open)*1000);
                    $('#from_'+x).datepicker('option', {minDate: min_datum,maxDate: $("#to_"+x).val()});
                }
                else if (this.id.indexOf("from_") == 0 && $("#to_"+x).val() != '' && geselecteerde_tot_datums.length == 0){
                    $('#from_'+x).datepicker('option', {minDate: new Date(volgend_jaar, 1 - 1,1),maxDate: $("#to_"+x).val()});
                }
                else if (this.id.indexOf("from_") == -1 && $("#from_"+x).val() != '' && geselecteerde_vanaf_datums.length >= 1){
                    var max_datum = new Date (getNextMaxVal(geselecteerde_vanaf_datums, timestamp_from_open)*1000);
                    $('#'+this.id).datepicker('option', {minDate:$("#from_"+x).val(),maxDate: max_datum});
                }
                else if (this.id.indexOf("from_") == -1 && $("#from_"+x).val() != '' && geselecteerde_vanaf_datums.length == 0){
                    $('#to_'+x).datepicker('option', {minDate: $("#from_"+x).val(),maxDate: new Date(volgend_jaar, 12,0)});
                }
                else {alert('10');}
            }
            else if(timestamp_from_open > 0 && timestamp_to_open < 0 && from_of_to == 'to' && geselecteerde_vanaf_datums.length >= 1){
                var closest_max = getNextMaxVal(geselecteerde_vanaf_datums, timestamp_from_open);
                $("#"+this.id).datepicker('option', {maxDate: new Date(closest_max*1000)});
                $("#"+this.id).datepicker('option', {minDate: new Date(timestamp_from_open*1000)});
            }
            else if(timestamp_from_open < 0 && timestamp_to_open > 0 && from_of_to == 'from'){
                var closest_min = getNextMinVal(geselecteerde_tot_datums, timestamp_to_open);
                $("#"+this.id).datepicker('option', {minDate: new Date(closest_min*1000)});
                $("#"+this.id).datepicker('option', {maxDate: new Date(timestamp_to_open*1000)});
            }
        },
        beforeShowDay: unavailable,
        onSelect: function(selectedDate) {
                var option = this.id.indexOf("from_") != -1 ? "minDate" : "maxDate"; 
                dates[x].not(this).datepicker("option", option, selectedDate); 
        },
        onClose: function (geselecteerdedatums) {
            var from_of_to = this.id.indexOf("from_") != -1 ? "from" : "to"; 
            var date_from = $("#from_"+x).val();
            var date_to = $("#to_"+x).val();
            var timestamp_from = Date.UTC(date_from.substring(6,10),date_from.substring(3,5)-1,date_from.substring(0,2))/1000;
            var timestamp_to = Date.UTC(date_to.substring(6,10),date_to.substring(3,5)-1,date_to.substring(0,2))/1000;
            var aantal_dagen = (timestamp_to - timestamp_from)/86400;
            if (timestamp_from > 0 && timestamp_to > 0){
                    geselecteerde_vanaf_datums.push(timestamp_from);
                    geselecteerde_vanaf_datums.sort();
                    geselecteerde_tot_datums.push(timestamp_to);
                    geselecteerde_tot_datums.sort();
                    geselecteerde_tot_datums.reverse();
                while (timestamp_from <= timestamp_to){
                    datums_niet_beschikbaar.push(timestamp_from);
                    timestamp_from = timestamp_from + 86400;
                }
                periode_half_gevuld = 0;
                $("#half_gevulde_datepicker").val(0);
                $("#datums_bezet").val(datums_niet_beschikbaar);
                $("#datums_vanaf").val(geselecteerde_vanaf_datums);
                $("#datums_tot").val(geselecteerde_tot_datums);
            }
            else if (this.value != ''){
                periode_half_gevuld = x;
                $("#half_gevulde_datepicker").val(x);
            }
        }
    }); 
}); 
dates[x]=$(“#from#+x+”,#to#+x)。日期选择器({
日期格式:“dd-mm-yy”,
月数:3,
《秀周刊》:没错,
maxDate:max_date_ini,
minDate:min_date_ini,
beforeShow:函数legen_array(){
var from_of_to=this.id.indexOf(“from”!=-1?“from”:“to”;
//每检查一次日期采集器周期的一半是(want dan是重叠的mogelijk)
if(periode_half_gevuld!=x&&periode_half_gevuld!=0){
警报(“Er是非周期性的niet geheel ingevuld,Er是非周期性的alleen Evanf of alleen tot datum ingevuld.Maak deze Period e Erst Complete of Maak hem leeg door op verwijderen te klikken”);
返回false;
}
var date_from_open=$(“#from_”+x).val();
var date_to_open=$(“#to_u”+x).val();
var timestamp_from_open=Date.UTC(Date_from_open.substring(6,10),Date_from_open.substring(3,5)-1,Date_from_open.substring(0,2))/1000;
var timestamp_from_open_teller=Date.UTC(Date_from_open.substring(6,10),Date_from_open.substring(3,5)-1,Date_from_open.substring(0,2))/1000;
var timestamp_to_open=Date.UTC(Date_to_open.substring(6,10),Date_to_open.substring(3,5)-1,Date_to_open.substring(0,2))/1000;
//从阿尔卑斯到格瓦德·齐恩和埃斯特·德泽·瓦尔德斯·哈伦的als(安德斯·卡恩·达格·维德的特鲁格·尼特·格科岑·沃登)
如果(时间戳从\u打开>0和时间戳到\u打开>0){
geselecteerde_vanaf_基准。拼接($.inArray(geselecteerde_vanaf_基准开放的时间戳),1);
geselecteerde_tot_基准。拼接($.inArray(时间戳_to_open,geselecteerde_tot_基准),1);
while(timestamp_from_open_teller=1){
var min_datum=新日期(getNextMinVal(geselecteerde_tot_datums,时间戳_to_open)*1000);
$(“#from#”+x).datepicker('option',{minDate:min_datum,maxDate:$(“#to#”+x.val());
}
else if(this.id.indexOf(“from#”)==0&&$(“#to_”+x).val()!=''&&geselecteerde_tot_datums.length==0){
$('#from#'+x).datepicker('option',{minDate:newdate(volgend#u jaar,1-1,1),maxDate:$(“#to#”+x.val());
}
else if(this.id.indexOf(“from”)=-1&&$(“#from”+x).val()!=''&&geselecteerde_vanaf_datums.length>=1){
var max_datum=新日期(getNextMaxVal(geselecteerde_vanaf_datums,时间戳_from_open)*1000);
$('#'+this.id).datepicker('option',{minDate:$(“#from#”+x.val(),maxDate:max_datum});
}
else if(this.id.indexOf(“from”)=-1&&$(“#from”+x).val()!=''&&geselecteerde_vanaf_datums.length==0){
$('#to_'+x).datepicker('option',{minDate:$(“#from_'+x).val(),maxDate:newdate(volgend_jaar,12,0)});
}
else{alert('10');}
}
else if(timestamp_from_open>0&×tamp_to_open<0&&from_of_to=='to'&&geselecteerde_vanaf_datums.length>=1){
var最近值=getNextMaxVal(geselecteerde_vanaf_基准,时间戳_from_open);
$(“#”+this.id).datepicker('option',{maxDate:new Date(最接近的_max*1000)});
$(“#”+this.id).datepicker('option',{minDate:newdate(timestamp_from_open*1000)});
}
else if(timestamp_from_open<0&×tamp_to_open>0&&from_of_to=='from'){
var Nexist_min=getNextMinVal(geselecteerde_tot_基准,时间戳_to_open);
$(“#”+this.id).datepicker('option',{minDate:newdate(最近的_min*1000)});
$(“#”+this.id).datepicker('option',{maxDate:new Date(timestamp_to_open*1000)});
}
},
展会日前:不可用,
onSelect:函数(selectedDate){
var option=this.id.indexOf(“from”!=-1?“minDate”:“maxDate”;
日期[x]。非(此)。日期选择器(“选项”,选项,所选日期);
},
一次关闭:功能(geselecteerdedatums){
var from_of_to=this.id.indexOf(“from”!=-1?“from”:“to”;
var date_from=$(“#from_”+x).val();
var date_to=$(“#to_”+x).val();
var timestamp_from=Date.UTC(Date_from.子字符串(6,10),Date_from.子字符串(3,5)-1,Date_from.子字符串(0,2))/1000;
var timestamp_to=Date.UTC(Date_to.子字符串(6,10),Date_to.子字符串(3,5)-1,Date_to.子字符串(0,2))/1000;
var aantal_dagen=(时间戳到-时间戳从)/86400;
如果(时间戳从>0到>0){
geselecteerde_vanaf_基准推送(时间戳从);
geselecteerde_vanaf_datums.sort();
geselecteerde_tot_基准推送(时间戳_to);
geselecteerde_tot_datums.sort();
geselecteerde_tot_基准。反向();

而(timestamp_from我认为在AJAX重新加载之后,您必须再次初始化日期选择器

jQuery('.datepicker').datepicker({...});

AJAX重新加载是如何完成的?我们是在讨论.NET更新面板吗?我过去也遇到过这些问题,因为它会丢失页面和javascript文件的上下文。我也同意Algothym,您可能需要重新初始化日期选择器。@icestorm请参阅r