2017-02-23 31 views
2

полный список, который является следующим образом-Закрыть список уль на выходе поля (нажмите или используя вкладку на клавиатуре)

<div class="autocomplete-list1"> 
    <input type="text" class="addpropertyinput areaname-list-completed" name="property_areaname" id="property_areaname" placeholder="Area Name" onkeyup="autofillareaname()" maxlength="40" required /> 
    <ul class="areaname-list" id="property_areaname_list"></ul> 
</div> 
<div class="errormsg" id="errormsg9"></div> 

я могу получить список будет закрыт с щелкнул в любом месте за пределами страницы

$(window).click(function() { 
$('#property_areaname_list').hide(); 
}); 

$('#property_areaname_list').click(function(event){ 
    event.stopPropagation(); 
}); 

, но как закрыть список, если табуляция нажата на клавиатуре, если я использую событие размытия, то он закрывается, но любой выбор, нажатый в списке, не выбирается ...

+1

Убедитесь идентификатор правильно, потому что вы используете «property_areaname» в HTML и используя «property_areaname_list» в JS-коде. –

+0

@Nitesh прямо здесь DragonFire –

+0

, который предназначен для текстового поля, ul имеет id

    DragonFire

    ответ

    2

    Скрыть список на вкладке нажмите: -

    $(document).on('keydown', function(e) { 
     
        var keyCode = e.keyCode || e.which; 
     
    
     
        if (keyCode == 9) { 
     
        $('#property_areaname_list').hide(); 
     
        } 
     
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
     
    <div class="autocomplete-list1"> 
     
        <input type="text" class="addpropertyinput areaname-list-completed" name="property_areaname" id="property_areaname" placeholder="Area Name" onkeyup="autofillareaname()" maxlength="40" required /> 
     
        <ul class="areaname-list" id="property_areaname_list"><li>1</li></ul> 
     
    </div> 
     
    <div class="errormsg" id="errormsg9"></div>

    Примечание: -

    При нажатии любой клавиши, это выше код будет проверять ключевой код этого ключа, и если ключевой код равен 9 означает tab key нажимается. то он будет скрывать автозаполнения списка

    +0

    спасибо Anant ... не могли бы вы сделать небольшое объяснение того, что здесь происходит .. я знаю, что может быть слишком много, чтобы спросить .. – DragonFire

    +1

    @DragonFire Я добавил объяснение в свой ответ. Check один раз –

    +1

    благодарю вас за объяснение этого также – DragonFire

    1

    использовать клавишу пресса, например..it может работать

    $(document).keypress(function(e) { 
        if(e.which == 9) { 
        $('#property_areaname_list').hide(); 
        } 
    }); 
    
    +0

    это не работает – DragonFire

    +0

    попробуйте код –

    +0

    $ (документ) .keypress (функция (e) { var code = e.keyCode || e.which; if (код == 13) {// Введите код ключа alert (" hi "); } }); –

    1

    скрыть DIV с потерянным фокусом или размыть

    $("#property_areaname").focusout(function() { 
         $('#property_areaname_list').hide(); 
        }); 
    

    с анимацией

    $("#property_areaname").focusout(function() { 
        $('#property_areaname_list').animate({ 
         display:"none" 
        }); 
    }); 
    
    +0

    как я указал в моем вопросе ... это не позволит выбрать элемент списка – DragonFire