Глобальные переменные при выборе в 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, время: 19:03. |