Глобальные переменные при выборе в Select / Option не сохраняются
Добрый день! Может, здесь кто-нибудь подскажет
Есть два поля Select: <script src="00.js" type="text/javascript"></script> <select size="4" onclick="SelectElem(this.value)"> <option value="10">elem 10</option> <option value="20">elem 20</option> <option value="30">elem 30</option> </select> <select size="4" onclick="SelectOper(this.value)"> <option value="1010">oper 1010</option> <option value="1020">oper 1020</option> <option value="1030">oper 1030</option> </select> <input type="button" value="ShowID" onclick="ShowID()"> <div id="info1">info1</div> Есть скрипт (00.js), в котором должны сохраняться выбранные в полях значения ElemID и OperID (они оформлены как глобальные): var ElemID; var OperID; function SelectElem(ElemID) { document.getElementById('info1').innerHTML='SelectElem : ElemID = '+ElemID+' OperID = '+OperID; } function SelectOper(OperID) { document.getElementById('info1').innerHTML='SelectOper : ElemID = '+ElemID+' OperID = '+OperID; } function ShowID() { alert('ShowID : ElemID = '+ElemID+' OperID = '+OperID); } Но при выборе в одном поле пропадает значение в другом, например: SelectElem : ElemID = 20 OperID = undefined (при выборе в первом) или SelectOper : ElemID = undefined OperID = 1020 (при выборе во втором) При нажатии ShowID (которая должна показать обе) вообще: ShowID : ElemID = undefined OperID = undefined 1) Почему значения переменных не сохраняются, они же вроде глобальные и 2) как сделать, чтобы сохранялись? 3) Или как-то по-другому, чтобы оба выбранных значения сохранялись и могли быть использованы в дальнейшем Вот здесь показано, как это работает (не так, как надо) http://sprav89.ru/00.php Спасибо! |
Короче, получилось вот так:
1) Объявляем переменные текстовыми, 2) задаем значения через промежуточные параметры ElemID_ и OperID_ var ElemID =""; var OperID =""; function SelectElem(ElemID_) { ElemID = ElemID_; document.getElementById('info1').innerHTML='SelectElem : ElemID = '+ElemID+' OperID = '+OperID; } function SelectOper(OperID_) { OperID = OperID_; document.getElementById('info1').innerHTML='SelectOper : ElemID = '+ElemID+' OperID = '+OperID; } function ShowID() { alert('ShowID : ElemID = '+ElemID+' OperID = '+OperID); } Всем спасибо! :) |
Просто в первом варианте внутри функций вы работали не с глобальными переменными, а с локальными с такими же именами, определенными в заголовках функций, а во втором - присваиваете значение локальных переменных глобальным
|
Часовой пояс GMT +3, время: 23:14. |