2014-08-31 2 views
0

Вот мой код:JS, как получить доступ к переменной вне его функции

var pickupdate; 
$(function(){ 
    $.datepicker.setDefaults(
    $.extend($.datepicker.regional[ '' ]) 
); 
    $('#pickupdate').datepicker({ 
    dateFormat: 'yy-mm-dd', 
    maxDate: "+3m", 
    minDate: 0, 
    onSelect: function() { 
     pickupdate = $(this).datepicker('getDate'); 
     alert(pickupdate) 
} 
    }); 
}); 
console.log(pickupdate) 

alert (в пределах функции) работает в то время как (за пределами функции) console.log показывает pickupdate, как undefined. Что я делаю не так?

+0

Попробуйте установить его в '$ (function() {var pickupdate;' –

+0

Невозможно. Любой код, который нуждается в значении (''getDate'') из события (' onSelect'), также должен быть связан или вызвано этим событием (например, 'alert()' is). –

+0

Вы можете установить переменную вне всех функций и отредактировать ее в пределах областей. –

ответ

1

Когда вы

$(function(){ 
    //Code here 
}); 

Вы в основном связывающую эту функцию в документе готовой функции JQuery, которая вызывается после console.log(pickupdate) выполняется. Причина, почему он говорит, pickupdate не определена, потому что функция onSelect для datepicker еще не запущена.

Вы можете попробовать заключените его в функции:

function LogValue() { 
    console.log(pickupdate); 
} 

Тогда вы могли бы добавить эту функцию как событие щелчка на кнопку, и вы увидите, что при изменении значения Datepicker и нажмите кнопку , он будет регистрировать правильное значение. Fiddle Here

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