当我按ENTER键时,页面消失。所以我禁用表单的回车键。但如果我在Textarea,我想启用新行的输入键。不是一个JQUERY解决方案请。
function stopRKey(evt){
var evt = (evt) ? evt : ((event) ? event : null);
var node = (evt.target) ? evt.target : ((evt.srcElement) ?
evt.srcElement : null);
if ((evt.keyCode == 13) && (node.type=="text")) {
return false;
}
else if((evt.keyCode==13) && (node.type=="checkbox")){
return false;
}
else if((evt.keyCode==13) && (node.type=="table")){
return false;
}
else if((evt.keyCode==13) && (node.type=="file")){
return false;
}
else if((evt.keyCode==13) && (node.type=="paragraph")){
return false;
}
else if((evt.keyCode==13) && (node.type=="textarea")){
return false;
}
else if((evt.keyCode==13) && (node.type=="list")){
return false;
}
else if((evt.keyCode==13) && (node.type=="choice")){
return false;
}
else if((evt.keyCode==13) && (node.type=="date")){
return false;
}
else if((evt.keyCode==13) && (node.type=="ip_cidr")){
return false;
}
else {
return true;
}
};
document.onkeypress = stopRKey;
答案 0 :(得分:0)
document.activeElement
为您提供当前关注的元素。
function stopRKey(ev){
if (ev.which == 13){ // which normalizes charCode and keyCode
var e = document.activeElement;
if (e.type == "textarea") return true; // this can also be e.id or e.classList
else return false;
}
}
document.onkeypress = stopRKey;

<input type="text">
<textarea></textarea>
&#13;
答案 1 :(得分:0)
这是另一个解决方案:
var textAreas=document.getElementsByTagName('textarea');
for(var i=0;i<textAreas.length;i++){
textAreas[i].onkeypress=stopRKey;
}
答案 2 :(得分:0)
我在移动设备上,所以没有经过测试,但这应该可行
document.addEventListener('keypress', e => {
If(document.querySelector(':focus').type !== 'textarea' && e.keyCode == 13) {
e.preventDefault();
}
});
答案 3 :(得分:0)
document.onkeypress = function(evt) {
if(evt.target.toString() !== '[object HTMLTextAreaElement]' && evt.charCode === 13){
evt.preventDefault();
return;
}
};