#php #javascript #search #uitextfield #search-form
#php #javascript #Поиск #uitextfield #форма поиска
Вопрос:
-
Как мне отдельно оформить текст внутри поля поиска (справа)? Я хочу иметь светло-серый цвет, когда есть текст по умолчанию (ПОИСК), и я хочу черный цвет, когда пользователь вводит слово.
-
Я попытался обернуть функцию внутри нового
div
тега, но бесполезно, это выдает ошибку PHP. -
Я использовал FireBug для отслеживания проблемы, но не смог разобраться в ней самостоятельно.
-
-
Когда вы вводите что-либо в поиск (не нажимайте Enter), а затем щелкаете мышью, текст, который вы написали, остается внутри поля поиска. Что я могу сделать, чтобы добиться эффекта, при котором всякий раз, когда вы удаляетесь от поля поиска, оно сбрасывается на слово по умолчанию (в данном случае ПОИСК)?
-
Я пытался играть с
onblur
иonfocus
, но я не знаю, что изменить, чтобы получить желаемое поведение. -
Я также использовал код для сброса формы, но это просто дает мне кнопку, которую вы должны нажать, чтобы восстановить текст по умолчанию.
-
-
Если ответ на второй вопрос слишком сложный, я бы хотел получить вместо него следующее:
-
При загрузке сайта в поле поиска отображается ПОИСК.
-
Когда вы вводите что-либо (не нажимайте Enter) и щелкаете мышью, текст, который вы вводите, остается, НО…
-
… Когда вы снова нажимаете на это поле поиска, ранее введенный текст полностью выделяется, так что, если вы начнете писать что-то новое, в поле поиска отображается только новый текст. (На данный момент, если вы нажмете на файл после щелчка, ваш новый текст просто будет добавлен к тексту, который вы ввели перед ним).
-
Комментарии:
1. PHP не волнует, что вы делаете с содержимым HTML, ошибка, скорее всего, произошла из-за синтаксической ошибки в коде. Если вы опубликуете, что вы делали при добавлении
<div>
, мы можем сообщить вам, где это было.2. Ну, я попробовал обернуть
onfocus="if (this.value == '<?php echo $search_text; ?>') {this.value = '';}"
внутриdiv
с идентификатором, потому что я думал, что это даст мне возможность настроить таргетинг на вводимый текст. Я могу изменить стиль всего текста (по умолчанию и ввода), изменив#st
но я не могу настроить таргетинг только на один из этих двух.3. Я удалил вашу мертвую ссылку.
Ответ №1:
Для меня это работает как для # 1, так и для # 2 (тестировалось в FF, не уверен насчет IE).
onclick
Проверяет, по-прежнему ли значение по умолчанию в поле поиска, если оно есть, оно очищается, и пользователь может ввести что-либо черным текстом.
Когда они удаляются, onblur
срабатывает событие и проверяет, присутствует ли значение по умолчанию. Если это не так, значение сбрасывается и изменяется на светло-серое.
<input type="text" name="search" value="SEARCH" style="color: #DDDDDD;"
onclick="javascript: if( this.value == 'SEARCH') { this.value = ''; this.style.color = '#000000'; } "
onblur="javascript: if( this.value != 'SEARCH') { this.value = 'SEARCH'; this.style.color = '#DDDDDD'; }" />
Комментарии:
1. Это потрясающе, спасибо! Я поиграл с существующим кодом и вашим кодом и обнаружил, что когда я добавляю
onfocus
функцию, первый ввод имеет серый цвет, а после того, как вы щелкнете в сторону, а затем вернетесь в поле, вы получите черный ввод. Не имеет значения, поскольку я удалилonfocus
но это показалось мне интересным. 😀 Вопрос — может быть, вы можете посмотреть, что я напутал, из-за чего функция поиска больше не работает? :/ Очевидно, я что-то удалил, и теперь, когда я ищу слово, оно остается на той же странице.2. Поиск работает для меня, когда я нажимаю enter — Но что может произойти, так это то, что
onblur
событие запускается до отправки формы, что приведет к возврату ввода обратно к «ПОИСКУ»3. Попробуйте ввести «GOA» в форму поиска. Результат поиска должен показывать только нижнюю запись. Вместо этого он показывает оба сообщения и просто изменяет адрес на
http://thefalljourneyindia.iblogger.org/?st=goa
.4. Для вашей формы установлено значение
method=GET
, поэтому вы получаете изменение URL. Если вы ожидаете ввести параметр POST, измените метод form. В противном случае форма правильно вставляетst
поле в URL.5. Хорошо, мне придется прочитать об этом в другом месте, чтобы полностью понять, что вы имеете в виду, и я задам новый вопрос, если после этого не смогу разобраться. Спасибо за всю вашу помощь.