Об одном ограничении скрипта 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" :)
08.12.2011, 23:13 [9645 просмотров]