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



我只需要在HTMLform上的文本区域中使用Enter键。我的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键。

我会使用keydown事件,因为它是先激发的。

您只需要添加一个额外的比较来检查触发事件的元素的tagName。

$('#formId').on('keydown', function(e) {
var keyCode = e.keyCode || e.which;
var tag = e.target.tagName
if (keyCode === 13 && tag !=="TEXTAREA") {
console.log("Enter prevented")
e.preventDefault();
return false;
}else{
console.log("Enter is ok...")
}
});
<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>

最新更新