2009-11-27 5 views
0

У меня есть метод объекта с именем update, который генерирует целое число, а если он отличается от значения переменной region, присваивает его region. Если целое число совпадает с region, тогда пользователь выбирает значение из выпадающего меню <select>.Получение значения выпадающего списка из функции

Я пытаюсь выяснить, как получить значение <select> в функции.

<form> 

Выберите регион Северо-восточный Юго- North Central South Central Plains Северо-Запад Юго-Запад

//Destination object 
var destination= function(spec) { 
    spec= spec||{}; 

    var that= {}; 




that.update= function(newDest) { 
    function roll() { 
    return Math.floor(Math.random()*6)+Math.floor(Math.random()*6)+Math.floor(Math.random()*2)*11; 
    }; 
    newDest= newDest||{}; 

    //newDest is event 
    newRegion=newDest.target.value; 

    //newDest is empty object 
    newRegion= newDest.region||codes[roll()][0]; 

    if (spec.region=== newRegion) { 
    //ask user for new region 
    //how do i use event handlers here? 
    }; 

    //set new region 
    spec.region= newRegion; 

    //set new city 
    spec.city= newDest.city||codes[roll()][newRegion]; 
    }; 

    return that; 
}; 

ответ

0

Если вы не используете prompt, conform или alert, запрос ввода данных всегда будет асинхронным. Имея это в виду, вы можете рассматривать это взаимодействие так же, как и запрос AJAX, чтобы обработчик событий стал синонимом обработчика ответа AJAX.

if (spec.region === newRegion) { 
    // 1. Display a <select> in the current context or 
    // launch some sort of dialog containing the <select>. 
    // 2. Attach an event handler to that <select> that is closed 
    // over in this scope, or is a method of `destination` and 
    // update `spec.region` and `spec.city` 
} else { 
    //set new region 
    spec.region= newRegion; 

    //set new city 
    spec.city= newDest.city||codes[roll()][newRegion]; 
} 
Смежные вопросы