Проблема связана с объемом. Ваша функция do_ajax объявляется в области действия функции при загрузке страницы - таким образом, вы не можете просто произвольно вызвать ее в другом месте на странице.
Есть несколько способов решить эту проблему, проще всего переместить определение функции do_ajax за пределы вашего кода onLoad, но это также загрязняет глобальное пространство имен и, как правило, менее желательно.
Во время работы над кодом onLoad лучше использовать привязку метода click на вашем селекторе к функции, которая вызывает do_ajax (). Это создаст замыкание вокруг него, и последующие события щелчка будут знать, как правильно стрелять.
$(function(){
function do_ajax(){
// do some stuff
}
// bind the click handler
$(selector).click(function(){ do_ajax(); });
});
потом позже ...
$(selector).click(); // fire the click event, which will call do_ajax()
Также обратите внимание, что вы, вероятно, должны возвращать либо true, либо false из функции обработчика щелчков, так как это будет контролировать всплытие события.
Я недостаточно знаком с элементом управления DatePicker. Вы также должны отделить свои вопросы.