Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Показывать иконку когда input в фокусе (https://javascript.ru/forum/dom-window/59945-pokazyvat-ikonku-kogda-input-v-fokuse.html)

Mrs.Haneki 04.12.2015 11:08

Показывать иконку когда input в фокусе
 
Доброе утро! помогите пожалуйста скорректировать код. Когда поле в фокусе, то показываем иконку и отчищаем введенный текст. когда не в фокусе то убираем. Я написала код, он показывает и убирает иконку, но не очищает текст. Хотя событие на очистку поля стоит.

Идеально сделать бы как в поиске Яндекс. когда ввели текст, то появляется кнопка очистить

<input id="searchDeliverySector" name="searchDeliverySector" type="text" class="form-control" maxlength="500">
            <span class="btn-clear" onclick="ClearSearchFields(['searchDeliverySector']); searchDepartments();" style="display: none;">
                <img src="/Content/Images/icon-clear.png" alt="">
            </span>


$(document).ready(function () {
        $('#searchDeliverySector').focus(function () {
            $('span.btn-clear').show();
        });

        $('#searchDeliverySector').blur(function () {
            $('span.btn-clear').hide();
        });
    });

Mrs.Haneki 04.12.2015 11:11

Вложений: 1
см скрин

Mrs.Haneki 04.12.2015 11:29

Помогите пожалуйста!

Алексей Петрович 04.12.2015 11:53

.val() В помощь.

HTML:
<span class="btn-clear" onclick="ClearSearchFields('#searchDeliverySector'); searchDepartments();" style="display: none;">


JS:
function ClearSearchFields(id) {
    $(id).val('');
}

Алексей Петрович 04.12.2015 11:56

Название конечно функции странное ClearSearchFields как будто для очистки всей формы. Есть ещё <button type="reset">Reset</button>.

Mrs.Haneki 04.12.2015 12:08

Алексей Петрович, увы, но не помогло =( он не успевает очистить, так как скрывается

Mrs.Haneki 04.12.2015 12:15

function ClearSearchFields(searchDeliverySector) {
	    $('#searchDeliverySector').focus(function () {
	        $('span.btn-clear').show();
	        $('#searchDeliverySector').val('');
	    });

	    $('#searchDeliverySector').blur(function () {
	        $('span.btn-clear').hide();
	    });
	}


правильно написала?

Алексей Петрович 04.12.2015 13:06

А если убрать:
$('#searchDeliverySector').blur(function () {
     $('span.btn-clear').hide();
});

Добавить:
function ClearSearchFields(id) {
    $(id).val('');
    $(this).hide();
}


Часовой пояс GMT +3, время: 19:59.