函数从不调用第二个函数

时间:2015-03-09 13:58:54

标签: javascript jquery ajax

我有这个javascript代码

function editRerenderFix() {
  console.log("edit render start");
  textAreaFix();
  console.log("edit render middle");
  setupDates();
  console.log("edit render end");
}
/** Function to auto expand out the text area to hold all content **/
function textAreaFix() {
  jQuery('textarea').on( 'change keyup keydown paste cut', function (event){
    jQuery(this).height(100);
    jQuery('textarea').each(function() {
      jQuery(this).height(jQuery(this).prop('scrollHeight'));
    });
  });
  return null;
}
/** Function to fix and set the custom date/time picker **/
function setupDates() {
  jQuery('.dateFormat').remove();
  var inputs = jQuery('.inputDate');
  jQuery(inputs).each(function() {
    var input = jQuery(this).val().split('/')[2];
    if(input.length > 4) {
      input = input.split(" ")[0];
    }
    if(input < '2015') {
      jQuery(this).val("");
    }
  });
  console.log("Setup Dates function ran");
  jQuery('.inputDate').datetimepicker();
}

使用onComplete ajax方法调用此函数。问题是当它运行时只调用textAreaFix()。仅在控制台中&#34;编辑渲染开始&#34;和&#34;编辑渲染中间&#34;出现。

enter image description here

&#34;设置日期功能运行的原因&#34;首先是因为我有这个功能,

jQuery(document).ready(function() {
  jQuery.material.init();
  textAreaFix();
  setupDates();
  tourStep();
  easterEgg();
});

如何调用setupDates()函数?

编辑:

我向setupDates()添加了更多调试,

/** Function to fix and set the custom date/time picker **/
function setupDates() {
  jQuery('.dateFormat').remove();
  var inputs = jQuery('.inputDate');
  console.log(inputs);
  jQuery(inputs).each(function() {
    var input = jQuery(this).val().split('/')[2];
    console.log(input);
    if(input.length > 4) {
      console.log("Input > 4");
      input = input.split(" ")[0];
      console.log(input);
    }
    if(input < '2015') {
      console.log("Fix 2015 dates");
      jQuery(this).val("");
    }
  });
  console.log("Setup Dates function ran");
  jQuery('.inputDate').datetimepicker();
}

当我跑步时,我明白了,

enter image description here

我不确定&#34; undefined&#34;来自。但

1 个答案:

答案 0 :(得分:1)

我的猜测是它显示未定义因为循环重复而jQuery(this).val()。split(&#39; /&#39;)[2]导致问题。也许这个的console.log和this.val()就在循环块的开头? - James Nearn 30分钟前