2015-06-07 2 views
5

У меня есть форум, на котором я изменяю функциональность вкладки для ввода. Когда пользователь нажимает, введите следующее поле ввода, чтобы получить фокус и как-то iImanage, чтобы открыть окно выбора select2 на событии focusin, чтобы открыть окно выбора 2.Событие «Keypress» работает некорректно, используя jQuery & Select2

Но, когда я выбираю значение и нажимаю ввод в окне выбора selec2, он не закрывается и остается открытым при вводе события нажатия клавиши, но он закрывается. Когда я меняю событие ввода ключа на любое событие нажатия клавиши, чем select2, подходим близко и отлично работаем, но я должен сделать это, введя.

Что я хочу:
Когда пользователь выбирает значение в поле выбора select2 и нажимает кнопку ввода, он приближается, а фокус переходит в следующее поле ввода или в любое поле.

Что я сделал до сих пор.

$('.search-select').on("focusin",function(event) { 
    $('#s2id_form-field-select-3').select2('open'); 
    event.preventDefault(); 
}); 

Выбор2 с введите ключевое событие, которое не работает

$('.select2-input').on("keypress", function(e) { 
      if (e.keyCode == 13) { 
       $("#select2-drop-mask").click(); 
       $('#name').focus(); 
       e.preventDefault(); 
       } 
     }); 

ВЫБ.2 с любым событием, которое при нажатии на кнопку работает

$('.select2-input').on("keypress", function(event) { 
       $("#select2-drop-mask").click(); 
       $('#name').focus(); 
       event.preventDefault();   
}); 

Markup

<select id="form-field-select-3" name="register_id" class="form-control search-select" required="required"> 
    <option value="">&nbsp;</option> 
    <? $query=$this->dba->get_dropdown('register',array('id','name')); 
     foreach($query as $key=>$value): 
    ?> 
    <option value="<?=$key?>"><?=$value; ?></option>} 
    <? endforeach;?> 
</select> 

Извинения за ошибки, это мой первый раз с использованием Select2.

ответ

4

Я думаю, что вы ищете KeyDown:

$('.select2-input').on("keydown", function(e) { 
      if (e.keyCode == 13) { 
       $("#select2-drop-mask").click(); 
       $('#name').focus(); 
       e.preventDefault(); 
       } 
     }); 

Они в little different. В этом случае нажатие клавиши не вставляет ничего в ваше поле.

+0

ok дайте мне проверить – Vicky

+0

сделано, но поверьте мне, я пробовал около 10 до 11 способов, и я потерпел неудачу, спасибо, что вы сделали мой день – Vicky

+0

В моем случае мне нужен был «keyup», чтобы я мог получить текущее значение .select2-input - keydown дает вам значение минус символ, который пользователь вводит в этот момент. – tylerl

Смежные вопросы