除其中一项输入外,禁用整个表单的 Enter 键

我需要 Enter 键才能仅在 HTML 上的 textarea 中处于活动状态form。我的 Javascript/jQuery 代码现在看起来像这样:


$('#formId').on('keyup keypress', function (e) {

var keyCode = e.keyCode || e.which;

if (keyCode === 13) {

//if this is textarea return true;

    e.preventDefault();

    return false;

}

});

我需要检查焦点是否在此表单内的文本区域上并允许用户按 Enter 键。


隔江千里
浏览 97回答 1
1回答

慕村225694

我会使用该keydown事件,因为它首先被触发。您只需添加额外的比较来检查触发事件的元素的 tagName 。$('#formId').on('keydown', function(e) {&nbsp; var keyCode = e.keyCode || e.which;&nbsp; var tag = e.target.tagName&nbsp; if (keyCode === 13 && tag !=="TEXTAREA") {&nbsp; &nbsp; console.log("Enter prevented")&nbsp; &nbsp; e.preventDefault();&nbsp; &nbsp; return false;&nbsp; }else{&nbsp; &nbsp; console.log("Enter is ok...")&nbsp; }});<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><form id="formId"><input type="text" value="ENTER does not work here"/><br><textArea>ENTER works here</textarea></form>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript