БлогNot. Об одном ограничении скрипта popup_help

Об одном ограничении скрипта popup_help

Добрый вечер, Николай!

По работе часто имею дело с PHP/HTML/Javascript, решил использовать всплывающие окна из вашей статьи "Всплывающие окна подсказок на Javascript" (js_popup_help.html). Окна отлично работают, спасибо за статью! Я ещё сделал у них закруглённые края, добавив в CSS border-radius.

Однако замечу, что, к сожалению, не всякое содержимое всплывающего окна корректно работает.

Поясню: размещаем в невидимом div'е всплывающего окна, допустим, выпадающий список select (или текстовое поле input с type=text) и кнопку.

Если в свойствах этой кнопки прописать выдавать alert'ом состояние select'а (или input'a) по свойству value, то выдаётся всё время 0 или пустое значение.

То есть невозможно считать Javascript'ом значение элемента на всплывающем окне. Такая вот штука.

Разместите вот следующий div всплывающего окна и увидите сами:

<div id='note1' style='display: none'>
<input type='text' id='textedit1'>
<input type='submit' onclick="alert(document.getElementById('textedit1').value)">
</div>

При изменении текста в поле и нажатии на кнопку текст не выдаётся.

Есть ли всплывающие окна без таких ограничений?

С уважением, Максим

p.s. При закрытии окна и его повторном открытии текст не сохраняется, видимо оно каждый раз создаётся заново, но это ладно

Мой ответ:

Добрый день.

Элемент создаётся, конечно, каждый раз заново, там же createElement и appendChild в коде.

Ну а насчёт не всякого содержимого - таков уж Javascript, вот

<div id='note1' style='display: none'>
<input type='text' id='textedit1' value='test'>
<input type='submit' onclick="alert(document.getElementById('textedit1').value)">
</div>

работать будет :)

На JQuery описанную задачу можно решить, а я её здесь не ставил. Нужна была "всплываемость", кроссбраузерность и индексируемость статей помощи поисковиком, без подключения громоздких внешних фреймворков. Полноценную "справочную систему" с полями запросов из этого, конечно, не сделать.

Да и в статье говорилось "любой HTML", а не "любой Javascript" :)


теги: javascript email

08.12.2011, 23:13; рейтинг: 8919