|
|
|
|
<form name=srch action="finda" method="post" style="padding:0; margin:0;">
<input class="empty" id=fi name="st" value="Поиск..." onFocus="if(this.value=='Поиск...'){this.value=''}" onBlur="if(this.value==''){this.value='Поиск...'}" size="20" type="search">
<input alt="" src="i/search_btn.gif" class="button" height="20" type="image" width="18" onLoad="if(getElementByID('fi').value=='Поиск...'){this.element.disabled='true';}">
</form>
|
Я пытаюсь задисэйблить кнопку отправки формы, покуда в форме не введен корректный запрос. И я сильно подозреваю, что делаю что-то не так. Не подскажете, как надо? | |
|
|
|
|
|
|
|
для: DJ Paltus
(16.03.2009 в 12:12)
| | Вы бред какой-то написали.
И в самой задаче и, тем более, в её решении.
Во-первых, из постановки вопроса "задисаблить ПОКУДА в форме не введен корректный запрос" следует, что кнопка сабмита формы ИЗНАЧАЛЬНО (ещё ДО ВВОДА какого-либо запроса) должна иметь прописанным HTML-атрибут disabled.
Отсюда в любом случае следует, что в форме должно быть
<input type="image" disabled>
|
Во-вторых, лично вы, вероятнее всего, ПОНИМАЕТЕ, что значит - "корректный запрос". А вот ни я, ни браузер этого НЕ ПОНИМАЕМ.
Два слова ВАСЯ ДУРАК - это корректный запрос?
Одно слово ВАСЯ - это корректный запрос?
А слово ВАС - тоже корректно или не очень?
Из каких-таких соображений браузер должен догадаться, что ВАС - это уже ОКОНЧАТЕЛЬНЫЙ запрос, а не начало запроса ВАСЯ ДУРАК?
Что должно произойти, чтобы браузер понял, что ввод запроса ЗАВЕРШЁН и что уже следует начать проверять корректность запроса и "раздисаблить" кнопку сабмита в случае его корректности? | |
|
|
|
|
|
|
|
для: PAT
(16.03.2009 в 12:31)
| | Всего лишь должно быть изменено слово "Поиск...", находящееся в форме по умолчанию, что будет являться критерием того, что в форму скорее всего пишут поисковый запрос.
<input class="empty" name="st" value="Поиск..." onFocus="if(this.value=='Поиск...'){this.value=''}" onBlur="if(this.value==''){this.value='Поиск...'}" onKeyDown="getElementByID('fi').disabled=='false'" size="20" type="search">
<input alt="" src="i/search_btn.gif" class="button" height="20" type="image" id=fi width="18" disabled>
|
И так не получается... | |
|
|
|
|
|
|
|
для: DJ Paltus
(16.03.2009 в 12:54)
| | Мда...
Во-первых, вам надо запомнить, что Javascript (в отличие от HTML) является регистроЗАВИСИМЫМ языком.
Поэтому бреда getElementByID он не понимает, а вот getElementById является его встроенным методом.
Во-вторых, вы так и не поняли того, что написано у меня в прошлый раз в пункте "во-вторых".
Событие, по которому браузер должен ПОНЯТЬ, что пора приступать к проверке, у вас в коде ОПРЕДЕЛЕНО.
И называется это событие - ПОТЕРЯ ФОКУСА полем ввода запроса.
Это, конечно, бред - ожидать от пользователя, то тот, написав что-то в строке поиска,
будет судорожно тыкать мышей по странице в надежде, что появится кнопка сабмита...
Но если вы полагаете, что вашу страницу будут посещать только такие "стукнутые" юзеры, то,
пожалуйста, берите нижеследующий код и пользуйте его:
<input class="empty" name="st" value="Поиск..." onFocus="if(this.value=='Поиск...'){this.value=''}" onBlur="if(!this.value){this.value='Поиск...';getElementById('fi').disabled = 1}; else getElementById('fi').disabled = 0" size="20" type="search">
<input alt="" src="i/search_btn.gif" class="button" height="20" type="image" id=fi width="18" disabled>
|
| |
|
|
|
|
|
|
|
для: PAT
(16.03.2009 в 13:08)
| | Честно говоря, кнопка-то никуда не девается, просто форма не срабатывает. Оно, конечно, заработало, но только под ИЕ, файрфокс в отказе.
Все равно спасибо за долготерпение. | |
|
|
|
|
|
|
|
для: DJ Paltus
(16.03.2009 в 13:16)
| | Это моя ошибка - точка с запятой лишние:
<input class="empty" name="st" value="Поиск..." onFocus="if(this.value=='Поиск...'){this.value=''}" onBlur="if(!this.value){this.value='Поиск...';getElementById('fi').disabled = 1} else getElementById('fi').disabled = 0" size="20" type="search">
<input alt="" src="i/search_btn.gif" class="button" height="20" type="image" id=fi width="18" disabled>
|
| |
|
|
|