Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Скрытие\показывание поля при вводе текста (https://javascript.ru/forum/dom-window/33640-skrytie%5Cpokazyvanie-polya-pri-vvode-teksta.html)

egor1708 30.11.2012 17:58

Скрытие\показывание поля при вводе текста
 
Добрый день. Пытаюсь сделать простой скриптик, есть два поля, одно скрытое, другое нет. Надо что бы при вводе текста в обычное поле, появлялось скрытое. И аналогично, если убрать текст в первого поля, то скрытое обратно исчезало. Вот что я сделал, но не вписывается текст в поля, и появляется и исчезает при произвольном нажатии на любую кнопку на клавиатуре. помогите пожалуйста :help:
<script type="text/javascript" src="jQuery.js"></script>

<script type="text/javascript"> 
function diplay_hide (blockId)

{ 
    if ($(blockId).css('display') == 'none') 
        { 
            $(blockId).animate({height: 'show'}, 500); 
        } 
    else 
        {     
            $(blockId).animate({height: 'hide'}, 500); 
        }} 
</script>

<input type="text" onkeydown="diplay_hide('#block_id');" />

<input id="block_id" type="text" style="display: none;" />

danik.js 30.11.2012 18:37

Вот ты говоришь если убрать текст, то поле должно исчезнуть. А где у тебя такая проверка в коде?

Используй событие input текстового поля:

<script>
function toggleBlock(selector, show) {
    var block = $(selector);
    if (block.is(':visible') !== show) {
        block.animate({height: show ? 'show' : 'hide'}, 500);
    }
}
</script>
<input type="text" oninput="toggleBlock('#block_id', !!this.value)" />


ЗЫ:
В осле 7-8 версий нет события input. вместо него есть propertychange. Так что нужно просто продублировать значение атрибута oninput и для атрибута onpropertychange

egor1708 30.11.2012 19:02

danik.js, Работает, только почему то во второе поле которое выехало, я не могу ничего вписать(( Как это уже исправить?


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