Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.12.2015, 20:12
Новичок на форуме
Отправить личное сообщение для top89 Посмотреть профиль Найти все сообщения от top89
 
Регистрация: 16.08.2014
Сообщений: 2

Глобальные переменные при выборе в 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

Спасибо!

Последний раз редактировалось top89, 23.12.2015 в 20:47.
Ответить с цитированием
  #2 (permalink)  
Старый 23.12.2015, 22:55
Новичок на форуме
Отправить личное сообщение для top89 Посмотреть профиль Найти все сообщения от top89
 
Регистрация: 16.08.2014
Сообщений: 2

Короче, получилось вот так:
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);
}


Всем спасибо!
Ответить с цитированием
  #3 (permalink)  
Старый 26.12.2015, 17:44
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Просто в первом варианте внутри функций вы работали не с глобальными переменными, а с локальными с такими же именами, определенными в заголовках функций, а во втором - присваиваете значение локальных переменных глобальным
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ajax загрузка HTML содержимого на страницу при выборе определенного select alex162341 jQuery 7 19.10.2014 08:32
не вызывается функция при изменении option soft4you Общие вопросы Javascript 1 23.07.2014 17:41
Динамические option в select lurii Элементы интерфейса 10 14.01.2011 11:23
Вставка текста в textarea после выбора select option modelisto Общие вопросы Javascript 2 14.10.2009 19:27
при выборе в 1-ом select соот.-щая инф. отображается в другом select celencer Общие вопросы Javascript 1 24.05.2009 20:38