我创建了一个实时搜索,我希望当用户点击ESC时,它应该关注输入框并删除其内容(如果不是自动为空)。
我可以删除内容,但不会专注于按键。
当我在focus();
window.onload
功能正常工作
我有现有的代码:(由于Focus Input Box On Load和JavaScript set focus to HTML form element已经尝试了评论中的代码,并且{{3}})
var aramaAlani = document.getElementById("id_arama");
$( document ).on( 'keydown', function ( e ) {
if ( e.keyCode === 27 ) { //ESC key code
aramaAlani.reset();
aramaAlani.focus();
//aramaAlani.scrollIntoView();
//document.forms[ 'id_arama' ].elements[ _element ].focus();
//document.getElementById("id_search").focus();
}
});
关键事件是否有任何特定方法可以关注元素?
答案 0 :(得分:1)
您无法在clear
上调用input
功能。
您有两个选择:
使用input.value = '';
像这样:
<body>
<input type="text" id="id_arama" />
<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
<script>
var form = document.querySelector('form');
var aramaAlani = document.getElementById("id_arama");
$( document ).on( 'keydown', function ( e ) {
if ( e.keyCode === 27 ) { //ESC key code
//form.reset();
aramaAlani.value = '';
aramaAlani.focus();
//aramaAlani.scrollIntoView();
//document.forms[ 'id_arama' ].elements[ _element ].focus();
//document.getElementById("id_search").focus();
}
});
</script>
</body>
&#13;
或者您可以使用reset()
方法,但只能在form
元素上调用它。此解决方案的优点是,如果您想清除许多输入。
像这样:
<body>
<form>
<input type="text" id="id_arama" />
</form>
<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
<script>
var form = document.querySelector('form');
var aramaAlani = document.getElementById("id_arama");
$( document ).on( 'keydown', function ( e ) {
if ( e.keyCode === 27 ) { //ESC key code
form.reset();
aramaAlani.focus();
//aramaAlani.scrollIntoView();
//document.forms[ 'id_arama' ].elements[ _element ].focus();
//document.getElementById("id_search").focus();
}
});
</script>
</body>
&#13;