Старый ответ:
(на основе неправильного понимания вопроса - см. Комментарии)
Потому что вы вызываете функцию и передаете ее результат вместо того, что вы должны делать: передавать ссылку на функцию (то есть обрабатывать ее как переменную).
Сделайте это:
$(function() {
$("input.formdate").datepicker({
changeMonth: true,
changeYear: true,
dateFormat: getDateFormat
});
});
<Ч />
Обновление:
После проверки API DatePicker пользовательского интерфейса jQuery необходимо передать строку в dateFormat.
Если вы не хотите, чтобы ваша функция выполнялась, если нет хотя бы одного ввода с классом formdate, вам нужно сделать это:
if ( $('input.formdate').length > 0 )
{
$("input.formdate").datepicker
(
{ changeMonth: true
, changeYear: true
, dateFormat: getDateFormat()
}
);
}
В качестве альтернативы, вы можете сделать это с помощью inline, если:
$("input.formdate").datepicker
(
{ changeMonth: true
, changeYear: true
, dateFormat:
$('input.formdate').length > 0 ? getDateFormat() : 'dd-mm-yy'
}
);
Хотя это спорно, если это более или менее читаемыми.
(Вероятно, есть еще более короткий путь, но мне нужно идти.)