Выполнение сценария до/после загрузки страницы
Приветствую, помогите пожалуйста решить проблему с отображением div элемента. Не был уверен как описать проблему в заголовке, так что постараюсь описать как можно подробнее здесь.
Ситуация следующая: Поиск. есть формачка сверху каждой странички, и соответственно на странице поиска. Необходимо реализовать отображение сообщения (локализованного для пользователя) если ввод меньше 3 символов. Что я сделал: 1. Поместил див контейнер с лейблом который отображает текст на основне текущего lid параметра. - сделано на jsp и кастом тэг библиотеке. 2. Если ввод меньше чем 3 символа сделать див видимым. если больше скрыть. - сделано на js 3. Если на сервер пришел запрос длинной меньше трех символов, отправить обратно не обновляя. - сделано на тех же servlets, jsp, struts 1.3.8,... 4. Проблема в том что если я пытаюсь выполнить поиск с главной страницы то js дойдя до места где нужно отобразить див его конечно не видет (страница на которой спрятан див - поиск...там либо результаты либо сообщение об ошибке). Так вот, как мне выполнить отображение div после того как страница вернулась с пустыми результатами с сервера(т.е. на сервер пришел запрос поискать что то меньше 3 символов, сервер отдал пустую страницу (базовую) без результатов(сам поиск выполнен не был))? вот мой кусок js кода: function search(form){ var searchForm = document.getElementById(form); var searchFieldValue = getElementsByClassName(searchForm,'search')[0].value; var errMsgDiv = document.getElementById("ErrMsgLessThanThree"); if(!searchFieldValue == ''){ searchForm.currentPage.value="1"; if (searchFieldValue.length < 3) { if (errMsgDiv == null) { console.log("111"); searchForm.submit(); window.onload=showValidationErrorMsg(); } else { console.log("222"); showValidationErrorMsg(); } } else { hideValidationErrorMsg(); searchForm.submit(); window.onload=hideValidationErrorMsg(); } } } function hideValidationErrorMsg() { var errMsgDiv = document.getElementById("ErrMsgLessThanThree"); if (errMsgDiv.style.visibility = "visible") { errMsgDiv.style.visibility = "hidden"; } } function showValidationErrorMsg() { var errMsgDiv = document.getElementById("ErrMsgLessThanThree"); if (errMsgDiv.style.visibility = "hidden") { errMsgDiv.style.visibility = "visible"; } } // Not supported in IE6 so we have to manually define function getElementsByClassName(node, classname) { var a = []; var re = new RegExp('\\b' + classname + '\\b'); var els = node.getElementsByTagName("*"); for(var i=0,j=els.length; i<j; i++) if(re.test(els[i].className))a.push(els[i]); return a; } Я не программист на JavaScript, знаю его постольку поскольку раз в 5лет с ним сталкиваешься. Надеюсь на вашу помощь в выделеном фрагменте. Спасибо. |
Тема закрыта
|
Часовой пояс GMT +3, время: 05:41. |