有一个简单的表单,但是当我使用
禁用ENTER时<INPUT CLASS=INPUT NAME=CASE3>
它禁止在整个页面上使用ENTER,
我怎么才能预防(不能在这里修改输入标签,所以添加ID不会工作)
<INPUT TYPE="button" value="Cases" onclick="javascript:pfkeyrtn('PF08')">
并允许它
server {
listen *:80;
server_name nodeapp.mydomain.com;
location / {
proxy_pass http://localhost:3000;
}
}
server {
listen *:80;
server_name goapp.mydomain.com;
location / {
proxy_pass http://localhost:5000;
}
}
谢谢
答案 0 :(得分:0)
只需将您的听众直接应用于<input>
:
document.querySelector('#myInput').addEventListener('keydown', /* your func goes here */);
答案 1 :(得分:0)
或者使用jQuery:
<script type="text/javascript">
$(function(){
$('#your-input').keydown(function(e) {
if ( e.keyCode == 13 ) {
e.preventDefault();
return false;
}
});
});
</script>
答案 2 :(得分:0)
preventDefault()方法告诉用户代理,如果事件未处理,则不应采取其默认操作。
因此,不是将eventListener添加到窗口,而是将其附加到元素本身。
var inpt = document.querySelector("input[name='CASE3']");
inpt.addEventListener("keydown", function(e) {
if (e.keyCode === 13) {
e.preventDefault();
alert("TADA!");
}
});
<input type="text" name="CASE3" />
答案 3 :(得分:0)
为什么不检查当前聚焦元素是否是输入元素?像这样:
window.addEventListener( 'keydown', ( e ) => {
const inputFields = [ 'textarea', 'input' ];
const isButton = e.target.getAttribute( 'type' ) === 'button';
if ( e.key === 'Enter' && inputFields.indexOf( e.target.nodeName.toLowerCase() ) && !isButton ) {
e.preventDefault();
}
} );