通过 Enter key on only_some 字段禁用表单提交

我想保留传统的“表单提交时,我按下回车”的行为,因为用户是熟悉的。但是通过条件反射,他们经常在完成一个文本输入框时按回车键——但是在他们实际完成完整的表单之前。

我想劫持回车键只有当然后集中在某一类的输入。

看看 相关问题这看起来像我要找的:

if (document.addEventListener) {
document.getElementById('strip').addEventListener('keypress',HandleKeyPress,false);
} else {
document.getElementById('strip').onkeypress = HandleKeyPress;
}

但是 if (document.addEventListener) {这部分我不熟悉。

79416 次浏览

您可以捕获并取消这些字段上的输入 keypress,如下所示:

$('.noEnterSubmit').keypress(function(e){
if ( e.which == 13 ) return false;
//or...
if ( e.which == 13 ) e.preventDefault();
});

然后在你的输入上给他们一个 class="noEnterSubmit":)

展望未来,以防其他人以后发现这一点,在 JQuery 1.4.3(尚未发布)中,您可以将其缩短为:

$('.noEnterSubmit').bind('keypress', false);

只允许在特定类上输入(在本例中为‘ enterSubmit’) :

jQuery(document).ready(function(){
jQuery('input').keypress(function(event){
var enterOkClass =  jQuery(this).attr('class');
if (event.which == 13 && enterOkClass != 'enterSubmit') {
event.preventDefault();
return false;
}
});
});

只需在 HTML 代码中的 <Head>标记中添加以下代码即可。 它将在表单上的所有字段的输入键上提交表单

<script type="text/javascript">
function stopEnterKey(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; }
}
document.onkeypress = stopEnterKey;
</script>
 <input type="text"  onkeydown="return (event.keyCode!=13);" />