我正在寻找一种方法来做到这一点,得到一些脚本,但没有一个适合我。
当我在文本框中输入时,它不应该做任何事情。
我尝试了一些JavaScript和jQuery脚本,但没有什么对我有用。
$(document).ready(function() {
$('#comment').keypress(function(event) {
if (event.keyCode == 13) {
event.preventDefault();
}
});
$('#comment').keyup(function() {
var txt = $('#comment').val();
$('#comment').val(txt.replace(/[\n\r]+/g, " "));
});
});
答案 0 :(得分:48)
这适合我。
$('textarea').keypress(function(event) {
if (event.keyCode == 13) {
event.preventDefault();
}
});
你的第二件作品看起来像是为了捕捉人们多行粘贴。在这种情况下,您应该将其绑定到keyup paste
。
答案 1 :(得分:12)
它阻止用户在文本框和文本框中按 Enter ;在这里我返回 false ,这会阻止表单提交。
$(document).ready(function()
{
// Stop user to press enter in textbox
$("input:text").keypress(function(event) {
if (event.keyCode == 13) {
event.preventDefault();
return false;
}
});
});
答案 2 :(得分:12)
如果要阻止特定文本框的Enter键,请使用内联js。
<input type="text" onkeydown="return (event.keyCode!=13);"/>
答案 3 :(得分:6)
适合我:
$('#comment').keypress(function(event) {
if (event.which == 13) {
event.preventDefault();
}
});
<强>更新强>
如果你试图阻止提交父表单而不是换行符(只有你使用的textarea
才有意义,你显然没有这样做?)你可能想查看这个问题:Disable the enter key on a jquery-powered form
答案 4 :(得分:4)
我发现了这个组合解决方案 http://www.askmkhize.me/how-can-i-disable-the-enter-key-on-my-textarea.html
$('textarea').keypress(function(event) {
if ((event.keyCode || event.which) == 13) {
event.preventDefault();
return false;
}
});
$('textarea').keyup(function() {
var keyed = $(this).val().replace(/\n/g, '<br/>');
$(this).html(keyed);
});
答案 5 :(得分:3)
如果要禁用所有类型的搜索文本框。给他们所有的课,然后使用像'search_box'这样的课程。
//prevent submission of forms when pressing Enter key in a text input
$(document).on('keypress', '.inner_search_box', function (e) {
if (e.which == 13) e.preventDefault();
});
喝彩! :)
答案 6 :(得分:1)
我不明白为什么这里的每个人都建议使用jquery。 有一个非常简单的方法 对于特定的输入元素字段。您可以使用其onKeyDown属性并在其中使用e.preventDefault()方法。像这样:
<input type="text" onKeyDown={(e) => e.preventDefault()}/>
注意:这是React JSX使用此属性的方式,您可以使用HTML基本方式。
答案 7 :(得分:0)
使用全局选择器$('input')...如果您在页面上使用多个文本框,ID('#comment')将导致问题。当使用动态内容时,使用.live绑定它。
$('input:not(textarea)').live('keypress',function(e) {
if (e.which == 13) return false;
if (e.which == 13) e.preventDefault();
});
(禁用文本框的输入并为文本区域输入启用)
答案 8 :(得分:0)
<script type="text/javascript">
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;}
}
document.onkeypress = stopRKey;
</script>
答案 9 :(得分:0)
Alex 解决方案的变化,但使用纯 JavaScript 代码。可用于任何键。阻止默认,停止表单提交。这对我有用。
<input type="text" placeholder = "0.0" onkeydown = "noareturnkey(event)">
然后是简单的javascript代码:
function noreturnkey(event) {
var x = event.which || event.keyCode;
if (x == '13')
event.preventDefault();
}