Выполнение сценария до/после загрузки страницы
Приветствую, помогите пожалуйста решить проблему с отображением 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лет с ним сталкиваешься. Надеюсь на вашу помощь в выделеном фрагменте. Спасибо.
|