Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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 JQuery Uncaught RangeError:超过bootstrap.datepicker.js的最大调用堆栈大小_Javascript_Jquery - Fatal编程技术网

Javascript JQuery Uncaught RangeError:超过bootstrap.datepicker.js的最大调用堆栈大小

Javascript JQuery Uncaught RangeError:超过bootstrap.datepicker.js的最大调用堆栈大小,javascript,jquery,Javascript,Jquery,我以前有一个运行良好的代码,我猜是在datepicker中。当我到处玩并测试单击datepicker时,它开始显示错误 我知道,超过堆栈大小意味着我有某种无限递归,永远不会返回到基或任何东西,你能告诉我如何解决这个问题吗 我的意思是,这个错误是非常随机的,有时候当你改变日期的时候,它是好的,有时候它只是停止了。当你在日期选择器上更改日期时,它并不总是崩溃 除了datepicker部分(开始日期和结束日期)之外,我从来没有在其他地方得到错误,在我创建datepicker之前,它是正常的 这是控制台

我以前有一个运行良好的代码,我猜是在datepicker中。当我到处玩并测试单击datepicker时,它开始显示错误

我知道,超过堆栈大小意味着我有某种无限递归,永远不会返回到基或任何东西,你能告诉我如何解决这个问题吗

我的意思是,这个错误是非常随机的,有时候当你改变日期的时候,它是好的,有时候它只是停止了。当你在日期选择器上更改日期时,它并不总是崩溃

除了datepicker部分(开始日期和结束日期)之外,我从来没有在其他地方得到错误,在我创建datepicker之前,它是正常的

这是控制台上错误消息的屏幕截图 及

HTML对应物(HTML和JS分开)只是

这是我的JS代码

$F.loadView(function() {

"use strict";
return {
   title: 'Master Discount - HelloBill',
   viewtitle: 'Master Discount',
   urlController: 'discount/',
   urlControllerHardware: 'hardware/',
   urlControllerLicense: 'license/',
    afterLoad: function(param) {
        var self = this;
        var th = this.parent;
        var post = '';
        var txt = 'inserted';

  //bwt munculin judul
        if (param.param[0]) {
            $('#topic').text('Update ' + self.viewtitle);
            txt = 'updated';
            getUpdateData(param, self, txt);
            post = param.param[0];
            $('#judul_detail').removeClass("looptemplate");
        } else {
            $('#topic').text('Add ' + self.viewtitle);
        }

  //mengeluarkan detail barang2 yg akan didiskon
        $('#Type').change(function(){
          if($('#Type').val()){
            $('#judul_detail').removeClass("looptemplate");
            if($('#Type').val() == 'Hardware') {
              // self.refreshTableTes(9, "Hardware");
              self.refreshTableHardware(param, self, txt);
            }
            else {
              // self.refreshTableTes(12, "License");
              self.refreshTableLicense(param, self, txt);
            }
          } else {
            $('#judul_detail').addClass("looptemplate");
            $('#Body').empty();
          }
        });

  //Datepicker
        Date.prototype.addDays = function(days) {
          var dat = new Date(this.valueOf());
          dat.setDate(dat.getDate() + days);
          return dat;
        }
        Date.prototype.reFormat = function() {
          var twoDigitMonth = ((this.getMonth()+1) < 10) ? '0'+(this.getMonth()+1) : (this.getMonth()+1);
          var currentDate = this.getFullYear() + "-" + twoDigitMonth + "-" + this.getDate();
          return currentDate;
        }

        var fullDate1 = new Date();
        var dumDate1 = '';
        $('#StartDate').datepicker({
          format: 'yyyy-mm-dd',
          autoclose: false,
          startDate: fullDate1.reFormat()
          // beforeShowDay: NotBeforeToday
        }).on('changeDate', function(selected) {
          var startDate = new Date(selected.date.valueOf());
          $('#EndDate').datepicker('setStartDate', startDate);
          // alert(dumDate1);
          // alert($('#EndDate').val());
          if(startDate > dumDate1 || $('#EndDate').val() == '') {
            // $('#EndDate').val($(this).val());
            $('#EndDate').datepicker('setDate', startDate);
          }
          dumDate1 = new Date(selected.date.valueOf());
        });
        var fullDate2 = new Date();
        var dumDate2 = '';
        $('#EndDate').datepicker({
          format: 'yyyy-mm-dd',
          autoclose: false,
          startDate: fullDate2.reFormat()
          // beforeShowDay: NotBeforeToday
        }).on('changeDate', function(selected) {
          var startDate = new Date(selected.date.valueOf());
          if(startDate < dumDate2 || $('#StartDate').val() == '') {
            $('#EndDate').datepicker('setStartDate', startDate);
            $('#StartDate').datepicker('setDate', startDate);
            // $('#EndDate.day').css('background-color', 'coral');
          }
          dumDate2 = new Date(selected.date.valueOf());
        });


  //Discount Percentage or Value
        $('input.terikat').keyup(function(){
          if($(this).val()) {
            $('input.terikat').not(this).val('');
          }
        });

        var numbersOnly = document.getElementsByClassName('numbers-only');
        for(var i = 0 ; i < numbersOnly.length ; i++) {
          numbersOnly[i].addEventListener('keydown', function(e) {
            var key   = e.keyCode ? e.keyCode : e.which;

            if (!( [8, 9, 13, 27, 46, 110, 190].indexOf(key) !== -1 ||
                 (key == 65 && ( e.ctrlKey || e.metaKey  ) ) ||
                 (key >= 35 && key <= 40) ||
                 (key >= 48 && key <= 57 && !(e.shiftKey || e.altKey)) ||
                 (key >= 96 && key <= 105)
               )) e.preventDefault();
         });
       }

  //Discount Start Date and End Date
        var dur = document.getElementById("StartDate");
        var dur2 = document.getElementById("EndDate");
        var checkboxDuration = document.getElementById("duration");

        dur.disabled = true;
        dur2.disabled = true;
        dur.style.backgroundColor = "Gainsboro";
        dur2.style.backgroundColor = "Gainsboro";

        $("#duration").click(function(){
          if(checkboxDuration.checked){
            dur.disabled = false;
            dur2.disabled = false;
            dur.style.backgroundColor = "white";
            dur2.style.backgroundColor = "white";
          } else {
            dur.disabled = true;
            dur2.disabled = true;
            dur.style.backgroundColor = "Gainsboro";
            dur2.style.backgroundColor = "Gainsboro";
          }
        });

  //Mengatur checkbox yang select all
        $('#select_all').click(function(){
          if($(this).prop("checked") == true){
            $(".selectedItem").prop("checked", true);
          }
          else{
            $(".selectedItem").prop("checked", false);
          }
        });


  //Submit Form
        $('#action').submit(function(e) {
           e.preventDefault();

            var ser = $F.serialize('#action');
            console.log(ser);

        //insert ke tabel diskon dan detail diskon
              $F.service({
                  type: 'post',
                  url: 'discount/action',
                  data: JSON.stringify(ser),
                  success: function(data){
                    if(data != null) {
                      if(data.Status == 0) {
                          $F.popup.show({
                              content: data.Message
                          });
                          $('.modal-content').attr("style", "width : 250px");
                          setTimeout(function() {
                              window.location = $F.config.get('baseUri') + '#/master/discount';
                              $('.popup-close-button').click();
                          }, 1500);
                      } else {
                        var err = '';
                        for (var field in data.Errors) {
                            err += data.Errors[field].ID + ' : ' + data.Errors[field].Message + '</br>';
                        }
                      }
                    } else {
                          DZ.showAlertWarning("Something is wrong, no data is " + txt, "#error_insert_update", 0);
                      }
                  }
              }); //tutup service (insert diskon dan detail diskon)

          });
        }, refreshTableHardware: function (param, self, jenis) {
          $F.service({
              url:self.urlControllerHardware+"getAllData",
              type: 'GET',
              success: function(data){
                if(data != null) {
                  var x = data.length;
                  var body = $("#Body");
                  var depan = '<div class="form-group"><div class="col-md-4 col-sm-4 col-xs-4"></div><div class="col-md-8 col-sm-8 col-xs-8">';
                  var belakang = '</div></div>';
                  body.empty();

                  for(var i = 0; i < x; i++){
                    var temp = depan + '<input type="checkbox" class="selectedItem" name="Item[]" id="detail-'+i+'" value="' + data[i].HardwareID + '"> <label for="detail-'+i+'">' + data[i].HardwareName + '</label>' + belakang;
                    body.append(temp);
                  }
                  if(jenis == 'updated') {getDetailData(param, self);}
                } else {
                  DZ.showAlertWarning("Cannot fetch the data, no services is available for now", "#Body", 0);
                }
              }
          })
        }, refreshTableLicense: function (param, self, jenis) {
          $F.service({
              url:self.urlControllerLicense+"getAllData",
              type: 'GET',
              success: function(data){
                if(data != null) {
                  var x = data.length;
                  var body = $("#Body");
                  var depan = '<div class="form-group"><div class="col-md-4 col-sm-4 col-xs-4"></div><div class="col-md-8 col-sm-8 col-xs-8">';
                  var belakang = '</div></div>';
                  body.empty();

                  for(var i = 0; i < x; i++){
                    var temp = depan + '<input type="checkbox" class="selectedItem" name="Item[]" id="detail-'+i+'" value="' + data[i].LicenseID + '"> <label for="detail-'+i+'">' + data[i].LicenseName + '</label>' + belakang;
                    body.append(temp);
                  }
                  if(jenis == 'updated') getDetailData(param, self);
                } else {
                  DZ.showAlertWarning("Cannot fetch the data, no services is available for now", "#Body", 0);
                }
              }
          })
        }

      };

function NotBeforeToday(date)
{
    var now = new Date();//this gets the current date and time
    if (date.getFullYear() == now.getFullYear() && date.getMonth() == now.getMonth() && date.getDate() > now.getDate())
        return [true];
    if (date.getFullYear() >= now.getFullYear() && date.getMonth() > now.getMonth())
       return [true];
     if (date.getFullYear() > now.getFullYear())
       return [true];
    return [false];
}

function getUpdateData(param, self, jenis) {
    $F.service({
        type: 'get',
        url: self.urlController + 'getUpdateData/' + param.param[0],
        success: function(data) {
          if(data != null) {
            var item = data.Discount[0];
            $('#DiscountID').val(item.DiscountID);
            $('#DiscountCode').val(item.DiscountCode);
            $('#DiscountName').val(item.DiscountName);
            $('#Description').val(item.Description);
            $('#Type').val(item.Type);
            if(item.Type == 'Hardware') self.refreshTableHardware(param, self, jenis);
            else self.refreshTableLicense(param, self, jenis);
            // getDetailData(param, self);
            $('#Percentage').val(item.DiscountPercentage);
            $('#Value').val(item.DiscountValue);
            if(item.StartDate && item.EndDate) {
              // alert(item.StartDate);
              // alert(item.EndDate);
              $('#duration').prop("checked", true);
              $('#StartDate').prop("disabled", false);
              $('#StartDate').css("background-color", "white");
              $('#EndDate').prop("disabled", false);
              $('#EndDate').css("background-color", "white");
              var i = item.StartDate;
              var j = item.EndDate;
              // $('#Period').val(i + ' - ' + j);
              $('#StartDate').val(i);
              $('#EndDate').val(j);
            }
          } else {
            DZ.showAlertWarning("Cannot fetch the data, no services is available for now", "#error", 0);
          }
        }
    });
}

function getDetailData(param, self) {
    $F.service({
        type: 'get',
        url: self.urlController + 'getDetailData/' + param.param[0],
        success: function(data) {
          if(data != null) {
            var x = data.Discount.length;
            var select = $('.selectedItem');

            for(var i = 0; i < x; i++) {
              var discount = data.Discount[i];
              var item='';
              if(discount.HardwareID) {
                item = discount.HardwareID;
              } else {
                item = discount.LicenseID;
              }
              // alert(item);

              select.each(function(){
                // alert($(this).val());
                if($(this).val() == item) {
                  // alert(item);
                  $(this).attr("checked", "checked");
                }
                // else alert(item);
              });
            }
          } else {
            DZ.showAlertWarning("Cannot fetch the data, no services is available for now", "#Body", 0);
          }
        }
    });
}
}());
$F.loadView(函数(){
“严格使用”;
返回{
标题:“大师级折扣-HelloBill”,
viewtitle:“主折扣”,
urlController:“折扣/”,
urlControllerHardware:“硬件/”,
urlControllerLicense:“许可证/”,
后加载:功能(参数){
var self=这个;
var th=this.parent;
var post='';
var txt='插入';
//bwt munculin judul
if(参数参数[0]){
$(“#主题”).text('Update'+self.viewtitle);
txt='更新';
getUpdateData(参数、self、txt);
post=参数参数[0];
$(“#judul_detail”).removeClass(“looptemplate”);
}否则{
$('#topic').text('Add'+self.viewtitle);
}
//详细说明2 yg可能会有问题
$('#Type')。更改(函数(){
if($('#Type').val()){
$(“#judul_detail”).removeClass(“looptemplate”);
if($('#Type').val()=='Hardware'){
//自我更新表(9,“硬件”);
刷新表硬件(param、self、txt);
}
否则{
//自我更新表格(12,“许可证”);
refreshtTableLicense(param、self、txt);
}
}否则{
$('judul_detail').addClass(“looptemplate”);
$('#Body').empty();
}
});
//日期选择器
Date.prototype.addDays=函数(天){
var dat=新日期(this.valueOf());
dat.setDate(dat.getDate()+天);
返回数据;
}
Date.prototype.reFormat=函数(){
var twoDigitMonth=((this.getMonth()+1)<10)?'0'+(this.getMonth()+1):(this.getMonth()+1);
var currentDate=this.getFullYear()+“-”+twoDigitMonth+“-”+this.getDate();
返回当前日期;
}
var fullDate1=新日期();
变量dumDate1='';
$('#StartDate')。日期选择器({
格式:“yyyy-mm-dd”,
自动关闭:错误,
startDate:fullDate1.重新格式化()
//展示日之前:不在今天之前
}).on('changeDate',函数(已选择){
var startDate=新日期(selected.Date.valueOf());
$(“#EndDate”).datepicker('setStartDate',startDate);
//警报(dumDate1);
//警报($('#EndDate').val());
if(startDate>dumDate1 | | |$('#EndDate').val()=''){
//$('#EndDate').val($(this.val());
$('EndDate')。日期选择器('setDate',startDate);
}
dumDate1=新日期(selected.Date.valueOf());
});
var fullDate2=新日期();
var dumDate2='';
$('#EndDate')。日期选择器({
格式:“yyyy-mm-dd”,
自动关闭:错误,
startDate:fullDate2.重新格式化()
//展示日之前:不在今天之前
}).on('changeDate',函数(已选择){
var startDate=新日期(selected.Date.valueOf());
if(startDate=35&&key=48&&key=96&&key now.getDate())
返回[真];
如果(date.getFullYear()>=now.getFullYear()&&date.getMonth()>now.getMonth())
返回[真];
如果(date.getFullYear()>now.getFullYear())
返回[真];
返回[假];
}
函数getUpdateData(参数、self、jenis){
$F.服务费({
键入:“get”,
url:self.urlController+'getUpdateData/'+param.param[0],
成功:功能(数据){
如果(数据!=null){
var项目=数据折扣[0];
$('#DiscountID').val(项目.DiscountID);
$(“#折扣代码”).val(item.DiscountCode);
$('#折扣名称').val(item.DiscountName);
$('#Description').val(item.Description);
$('#Type').val(item.Type);
if(item.Type=='Hardware')self.refreshtTableHardware(param,self,jenis);
else self.refreshtTableLicense(param、self、jenis);
//getDetailData(参数、自身);
$('百分比').val(项目折扣百分比);
$('#Value').val(item.DiscountValue);
if(item.StartDate和item.EndDate){
//警报(项目开始日期);
//警报(项目结束日期);