2015-03-09 2 views
0

У меня есть этот код 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(); 
} 

Эта функция вызывается с помощью метода AJAX OnComplete. Проблема в том, что когда он запускается, вызывается только textAreaFix(). В консоли отображаются только «edit render start» и «edit render middle».

enter image description here

Причина, по которой «Настройка даты функция побежал» первый потому, что у меня есть эта функция,

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

Как я могу получить функцию setupDates() под названием?

EDIT:

Я добавил больше отладки в 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

Я не уверен, где "не определено" приходит от этого.

+0

любые ошибки в консоли? –

+0

Ошибок нет. Функция просто не вызывается. Я отрезал консоль. Первая функция «Даты установки» находится на загрузке страницы, а начало рендеринга редактирования - это когда я нажал кнопку, вызывающую метод ajax. –

+0

Вы можете применить контрольные точки в коде и посмотреть, будет ли код остановлен. Используйте инструменты разработчика, доступные в браузере. – CuriousMind

ответ

1

Я предполагаю, что он отображается неопределенно, потому что цикл повторяется, и jQuery (this) .val(). Split ('/') [2] вызывает проблему. Может быть console.log на этом и this.val() прямо в начале блока цикла? - James Nearn 30 минут назад

Смежные вопросы