我有一个论坛,我在其中更改了要输入的标签的功能。当用户按下enter时,下一个输入字段获得焦点,并以某种方式iImanage打开focusin
事件上的select2选择框,以便打开选择2框。
但是,当我选择值并在selec2选择框中按Enter键时,它不会关闭并在输入按键事件时保持打开但它会关闭。当我将enter键事件更改为任何按键事件而不是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();
});
标记
<select id="form-field-select-3" name="register_id" class="form-control search-select" required="required">
<option value=""> </option>
<? $query=$this->dba->get_dropdown('register',array('id','name'));
foreach($query as $key=>$value):
?>
<option value="<?=$key?>"><?=$value; ?></option>}
<? endforeach;?>
</select>
提前为错误道歉,这是我第一次使用Select2。
答案 0 :(得分:5)
我认为您正在寻找 keydown :
$('.select2-input').on("keydown", function(e) {
if (e.keyCode == 13) {
$("#select2-drop-mask").click();
$('#name').focus();
e.preventDefault();
}
});
他们是little different。 在这种情况下,按键不会在您的字段中插入任何内容。
答案 1 :(得分:0)
为我工作
$(document).on('keyup keydown', 'input.select2-search__field', function(e) {