Вы не можете просто подключиться к событию onfocus выбора и проверить, загружены ли данные в него или нет, если не сделать запрос к серверу и получить данные опций и запомнить для создания разметки на на стороне клиента.
$("select").focus(function()
{
if($(this).find("option").length>0)
return;
//server call to get your json data i.e the option value use $.get, $.ajax etc.
//hook in the callback function to populate the markup
});
Что ты думаешь?