Список форумов Шадринский форум -> Программирование -> PHP, PERL, HTML, CSS etc -> JavaScript
Начать новую тему   Ответить на тему   вывод темы на печать

JavaScript

Автор
Сообщение
sweet
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 29.11.2004
Сообщения: 144
Откуда: Москва

Статус: Offline
СообщениеДобавлено: 2007.02.27 18:17.20
Ответить с цитатой
задача такая:
на странице есть select:

<select name="swich" onChange="swich(this.value)">
   <option value="div1">Показать div1
   <option value="div2">Показать div2
   <option value="div3">Показать div3
</select>


и имеются div:

<div id="div1" name="div1" style="display: none">DIV1</div>
<div id="div2" name="div2" style="display: none">DIV2</div>
<div id="div3" name="div3" style="display: none">DIV3</div>


код JS:

function swich(val) {
   document.GetElementById(val).style.display='block';
}

нужно что-бы при выборе нужного дива в селекте он показывался ...

всё это не работает Sad
Кто знает JS подскажите как решить?

З.Ы. сразу говорю, что в JS я оочень не силен.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
VolF
подонок


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 3043
Откуда: Rammstein, GmbH

Статус: Offline
СообщениеДобавлено: 2007.02.27 21:57.50
Ответить с цитатой
ну для начала попробуй таг:
getElementById
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
Konst
Писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 682


Статус: Offline
СообщениеДобавлено: 2007.02.27 22:18.41
Ответить с цитатой
Немного офф.
sweet писал(а):

function swich(val) {
   document.GetElementById(val).style.display='block';
}
Чтобы не заморачиваться со значением параметра display для конкретного элемента, рекоммендую использовать
document.getElementById(val).style.display='';
Для DIV'а, естественно, значение "block" подойдёт.
Посмотреть профиль Отправить личное сообщение
sweet
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 29.11.2004
Сообщения: 144
Откуда: Москва

Статус: Offline
СообщениеДобавлено: 2007.02.27 22:45.01
Ответить с цитатой
VolF писал(а):
ну для начала попробуй таг:
getElementById

1. регистр имеет значение?
2. пробовал уже все варианты.

Добавлено спустя 3 минуты 25 секунд:

Re: JavaScript

Konst писал(а):
Немного офф.
sweet писал(а):

function swich(val) {
   document.GetElementById(val).style.display='block';
}
Чтобы не заморачиваться со значением параметра display для конкретного элемента, рекоммендую использовать
document.getElementById(val).style.display='';
Для DIV'а, естественно, значение "block" подойдёт.


смысла сказанного что-то не уловил ... разве то что ты сказал в коде итак не написано?
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
VolF
подонок


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 3043
Откуда: Rammstein, GmbH

Статус: Offline
СообщениеДобавлено: 2007.02.27 22:50.56
Ответить с цитатой
sweet писал(а):
регистр имеет значение?

в JS да!

sweet писал(а):
смысла сказанного что-то не уловил ... разве то что ты сказал в коде итак не написано?

ну вроде как в разных браузерах по-разному. в IE 'block' и FF просто ''
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
Konst
Писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 682


Статус: Offline
СообщениеДобавлено: 2007.02.27 22:56.00
Ответить с цитатой
sweet писал(а):
смысла сказанного что-то не уловил ... разве то что ты сказал в коде итак не написано?
Это тонкости. Видимо, ещё рано.
Советую поставить Developer Toolbar'ы для FF и IE. Значительно упрощает разработку.
P.S.: регистр имеет значение

Добавлено спустя 2 минуты 37 секунд:

VolF писал(а):
в IE 'block' и FF просто ''
Нет. Для блочных элементов нужно использовать 'block', для линейных - 'inline', для списков 'list-item' и т.д. Но ведь можно использовать просто '' и не задумываться о необходимом значении для style.display у элемента
Посмотреть профиль Отправить личное сообщение
sweet
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 29.11.2004
Сообщения: 144
Откуда: Москва

Статус: Offline
СообщениеДобавлено: 2007.02.27 22:57.58
Ответить с цитатой
Konst писал(а):
sweet писал(а):
смысла сказанного что-то не уловил ... разве то что ты сказал в коде итак не написано?
Это тонкости. Видимо, ещё рано.
Советую поставить Developer Toolbar'ы для FF и IE. Значительно упрощает разработку.
P.S.: регистр имеет значение


может быть и рано Smile как сказал ранее в JS - ламмер Smile
спасибо за совет, посмотрю что за тулбары ...

мдям ... регистрозависимые названия функций ... ещё раз мдям ... мне б такую траву которую разработчики курили ...

Добавлено спустя 1 минуту 6 секунд:

так всё-таки кто-нибудь скажет почему если просто указать в скобках ID елемента, то работает, а если так передавать, то нет?
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
Konst
Писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 682


Статус: Offline
СообщениеДобавлено: 2007.02.27 23:03.11
Ответить с цитатой
<select name="swich" onChange="swich(this.value)"> 
   <option value="div1">Показать div1 
   <option value="div2">Показать div2 
   <option value="div3">Показать div3 
</select> 
<div id="div1" name="div1" style="display: none">DIV1</div> 
<div id="div2" name="div2" style="display: none">DIV2</div> 
<div id="div3" name="div3" style="display: none">DIV3</div> 
<script type="text/javascript">
function swich(val) { 
   document.getElementById(val).style.display='block'; 
} 
</script>
Это работающий вариант. Про "так передать" не понял.
Посмотреть профиль Отправить личное сообщение
sweet
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 29.11.2004
Сообщения: 144
Откуда: Москва

Статус: Offline
СообщениеДобавлено: 2007.02.27 23:07.52
Ответить с цитатой
Konst писал(а):
<select name="swich" onChange="swich(this.value)"> 
   <option value="div1">Показать div1 
   <option value="div2">Показать div2 
   <option value="div3">Показать div3 
</select> 
<div id="div1" name="div1" style="display: none">DIV1</div> 
<div id="div2" name="div2" style="display: none">DIV2</div> 
<div id="div3" name="div3" style="display: none">DIV3</div> 
<script type="text/javascript">
function swich(val) { 
   document.getElementById(val).style.display='block'; 
} 
</script>
Это работающий вариант. Про "так передать" не понял.


в IE6 работает в IE7 нет ... в том-то и косяк...
проверил на нескольких машинах ...

"так передать" это "this.value".
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
Konst
Писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 682


Статус: Offline
СообщениеДобавлено: 2007.02.27 23:14.55
Ответить с цитатой
sweet
В IE7 и FF2.0 приведённый мной код работает, проверено.
Посмотреть профиль Отправить личное сообщение
sweet
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 29.11.2004
Сообщения: 144
Откуда: Москва

Статус: Offline
СообщениеДобавлено: 2007.02.28 00:12.12
Ответить с цитатой
хмм ... завтра прийду на работу еще раз перепроверю Smile может я что не так писал в коде ...
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
sweet
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 29.11.2004
Сообщения: 144
Откуда: Москва

Статус: Offline
СообщениеДобавлено: 2007.02.28 15:03.58
Ответить с цитатой
да, действительно работает, видимо у меня где-то в коде раньше ошибка была ...
еще один вопрос ...

var old_id = 'doc_dogovor';
document.getElementById(old_id).style.display='none';

работает нормально


var old_id = document.getElementById('old_show_div').value;
document.getElementById(old_id).style.display='none';


уже нет. хотя например:

alert(old_id);


говорит что old_id = 'doc_dogovor'

подскажите где косяк?
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
Konst
Писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 682


Статус: Offline
СообщениеДобавлено: 2007.02.28 15:15.58
Ответить с цитатой
sweet
Полный код (вместе с html'ем) в студию.
Посмотреть профиль Отправить личное сообщение
sweet
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 29.11.2004
Сообщения: 144
Откуда: Москва

Статус: Offline
СообщениеДобавлено: 2007.02.28 15:42.12
Ответить с цитатой
html:

<script src='js/main.js'></script>
<form name="form" id="form">
<input type=hidden name="show_div" id="show_div">
<table align=center>
<tr>
  <td>
      <span id=adddocument>Выберите документ:</span>
  </td>
  <td>
      <select onChange="select_add_doc(this.value);" id="doc_switch" name="doc_switch">
            <option value='0' SELECTED>-=Выберите документ=-"
            <option value='doc_dogovor'>Договор
            <option value='doc_chertej'>Чертеж
            <option value='doc_prikaz'>Приказ
                  ...бла-бла-бла...
      </select>
   </td>
</table>

<div id="doc_dogovor" name="doc_dogovor" style="display: none;">
 ...........................
</div>

<div id="doc_chertej" name="doc_chertej" style="display: none;">
 ...........................
</div>

и т.д.

</forn>


main.js:


function select_add_doc(val) {
var old_id = document.getElementById('show_div').value;
document.getElementById(old_id).style.display='none';
document.getElementById(val).style.display='block';
document.getElementById('show_div').value = val;
}
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
Konst
Писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 682


Статус: Offline
СообщениеДобавлено: 2007.02.28 16:44.45
Ответить с цитатой
Так. И чему равно old_id при первом вызове select_add_doc?
Посмотреть профиль Отправить личное сообщение
sweet
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 29.11.2004
Сообщения: 144
Откуда: Москва

Статус: Offline
СообщениеДобавлено: 2007.02.28 16:46.27
Ответить с цитатой
при первом NULL раз нигде не обьявлено.
при всех последующих уже другие значения.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
Konst
Писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 682


Статус: Offline
СообщениеДобавлено: 2007.02.28 16:52.04
Ответить с цитатой
Окей. Вы считаете, что document.getElementById() от NULL - это нормально?
Посмотреть профиль Отправить личное сообщение
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2007.02.28 16:52.19
Ответить с цитатой
а если вместо
document.getElementById(old_id).style.display='none';

сделать
if(old_id=document.getElementById(old_id.value)) old_id.style.display='none';
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral


Последний раз редактировалось: andy ice (2007.02.28 17:00.37), всего редактировалось 1 раз
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
Konst
Писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 682


Статус: Offline
СообщениеДобавлено: 2007.02.28 16:59.20
Ответить с цитатой
andy ice
sweet не просил готовое решение, он спросил что у него неправильно.
Посмотреть профиль Отправить личное сообщение
sweet
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 29.11.2004
Сообщения: 144
Откуда: Москва

Статус: Offline
СообщениеДобавлено: 2007.02.28 17:00.21
Ответить с цитатой
Konst писал(а):
Окей. Вы считаете, что document.getElementById() от NULL - это нормально?

блин. пипец. я понимаю что это НЕНОРМАЛЬНО. НО ЭТО НЕ РАБОТАЕТ ДАЖЕ ЕСЛИ ТАМ ЕСТЬ ЗНАЧЕНИЕ. как еще обьяснить?! я прошу обьяснить почему "ТАК" не работает, а потом уже все косяки доделаю. смысл ваять кучу кода если одна итоговая строка не работает.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2007.02.28 17:01.36
Ответить с цитатой
я там исправил.

а неправильно... ну наверно потому, что попытка присвоить стиль несуществующему элементу останавливает выполнение скрипта?
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
sweet
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 29.11.2004
Сообщения: 144
Откуда: Москва

Статус: Offline
СообщениеДобавлено: 2007.02.28 17:01.51
Ответить с цитатой
andy ice писал(а):
а если вместо
document.getElementById(old_id).style.display='none';

сделать
if(old_id=document.getElementById(old_id.value)) old_id.style.display='none';


не работает тоже Sad только что попробовал.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2007.02.28 17:03.26
Ответить с цитатой
и еще, закрывающий тэг формы с ошибкой написан, форма не закрыта.
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
sweet
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 29.11.2004
Сообщения: 144
Откуда: Москва

Статус: Offline
СообщениеДобавлено: 2007.02.28 17:06.28
Ответить с цитатой
andy ice писал(а):
и еще, закрывающий тэг формы с ошибкой написан, форма не закрыта.

сори, это я в форуме неправильно написал ... в оригинале нормально написано ...

Добавлено спустя 56 секунд:

sweet писал(а):
andy ice писал(а):
а если вместо
document.getElementById(old_id).style.display='none';

сделать
if(old_id=document.getElementById(old_id.value)) old_id.style.display='none';


не работает тоже Sad только что попробовал.


когда цитировал незаметил что ты уже изменил сообщение .... последний вариант работает! спасибо за помошь всем!
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
sweet
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 29.11.2004
Сообщения: 144
Откуда: Москва

Статус: Offline
СообщениеДобавлено: 2007.03.06 17:37.48
Ответить с цитатой
еще один вопрос к знатокам JavaScript:

есть например main.html

<frameset cols="130,*" border="1" id="mainframe" name="mainframe">
   <frame src="menu.html" name="a1" NORESIZE scrolling="no">
   <frameset rows="200,20,*" border="1" id="childframe" name="childframe">
        <frame src="top.html" name="a2" id="a2" NORESIZE>
        <frame src="list.html" name="a4" id="a4" NORESIZE>
        <frame src="info.html" name="a3" id="a3">
    </frameset>
</frameset>


из info.html вызываем новое окно ...

HTML этого окна примерно такой:


<frameset cols="*" rows="200,*">
      <frame src="users.html" name="users" id="users">
      <frame src="us_info.html" name="us_info" id="us_info">
<frameset>


на us_info.html предположим есть кнопка, по клике на которой в родительском окне, фрейме a3 (info.html) должно что-либо происходить. к примеру innerHTML для DIV должен передаватся какой-либо.

Вопрос в том, как обратится к прародителю?
window.parent до него не "дотягивается" Sad
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2007.03.06 17:42.13
Ответить с цитатой
parent ?

Добавлено спустя 1 минуту 16 секунд:

RTFM frames
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
sweet
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 29.11.2004
Сообщения: 144
Откуда: Москва

Статус: Offline
СообщениеДобавлено: 2007.03.06 17:55.34
Ответить с цитатой
andy ice писал(а):
parent ?

Добавлено спустя 1 минуту 16 секунд:

RTFM frames


пробовал window.parent.parent и window.parent.opener .... не получается ...

Добавлено спустя 1 минуту 57 секунд:

window.parent.opener.frames('a3').getElementById('list_users').innerHTML='123';

не работает ...
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2007.03.06 17:57.02
Ответить с цитатой
sweet писал(а):
из info.html вызываем новое окно
куда вызываем?

ты бы набор тестовых файликов прикладывал.

Добавлено спустя 49 секунд:

тут (если я правильно понял)
window.opener.parent...
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
sweet
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 29.11.2004
Сообщения: 144
Откуда: Москва

Статус: Offline
СообщениеДобавлено: 2007.03.06 17:59.52
Ответить с цитатой
andy ice писал(а):
ты бы набор тестовых файликов прикладывал.

слишком много прикладывать тогда прийдётся ... там оч. много php кода ...
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2007.03.06 18:00.54
Ответить с цитатой
зачем пхп? голый хтмл. два-три файла.
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
Страница 1 из 2
Начать новую тему   Ответить на тему   вывод темы на печать
На страницу 1, 2  След.
Показать сообщения:   
Список форумов Шадринский форум -> Программирование -> PHP, PERL, HTML, CSS etc -> JavaScript

 
Перейти: 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы