我有一个针对国家(多重选择)的select2下拉菜单。用户键入关键字时,它将在菜单中显示相关项目。
例如,如果用户键入 ind ,菜单将显示印度和印度尼西亚。
如果按Enter键,则选择第一项( India )。这是默认行为。
现在,我想在用户键入 ind 并按Enter时同时选择两个国家/地区。
$(".select2-search__field").on("keyup", function (e) {
console.log(e.keyCode);
if (e.keyCode == 13) {
alert();
}
});
使用上面的代码,控制台日志显示为 i , n 和 d ,而不显示 Enter键< / em>,因此警报永远不会显示。
我猜默认的select2行为是阻止我的代码被触发。
该怎么办,以便可以捕获Enter键。
答案 0 :(得分:3)
已弃用keypress事件。您可能要改用keydown
。
$(document).ready(function() {
$('#example').select2();
$(".select2-search__field").on("keydown", function(e) {
if (e.keyCode == 13) {
alert();
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://rawgit.com/select2/select2/master/dist/js/select2.js"></script>
<link href="https://rawgit.com/select2/select2/master/dist/css/select2.min.css" rel="stylesheet" />
<select id="example" multiple="multiple" style="width: 300px">
<option value="1">Argentina</option>
<option value="2">Brazil</option>
<option value="3">China</option>
<option value="4">India</option>
<option value="5">Indonesia</option>
</select>
答案 1 :(得分:0)
为什么不简单地使用此代码进行检查,因为可以单击鼠标即可:
$('#example').select2();
$("#example").on("click change keydown", function (e) {
var keycode = (event.keyCode ? event.keyCode : event.which);
if (keycode == 13) {
console.log('inside')
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="example" multiple="multiple" style="width: 300px">
<option value="1">Argentina</option>
<option value="2">Brazil</option>
<option value="3">China</option>
<option value="4">India</option>
<option value="5">Indonesia</option>
</select>
希望这会有所帮助。