Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 禁用特定文本框上的enter键_Jquery - Fatal编程技术网

Jquery 禁用特定文本框上的enter键

Jquery 禁用特定文本框上的enter键,jquery,Jquery,我正在寻找一种方法来实现这一点,得到了一些脚本,但没有一个适合我 $(document).ready(function() { $('#comment').keypress(function(event) { if (event.keyCode == 13) { event.preventDefault(); } }); $('#comment').keyup(function() { var tx

我正在寻找一种方法来实现这一点,得到了一些脚本,但没有一个适合我

$(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, " "));
    });
});
<input type="text" placeholder = "0.0"  onkeydown = "noareturnkey(event)">
当我在文本框中按enter键时,它不应该做任何事情

我已经尝试了一些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, " "));
    });
});
<input type="text" placeholder = "0.0"  onkeydown = "noareturnkey(event)">
这对我有用

$('textarea').keypress(function(event) {
    if (event.keyCode == 13) {
        event.preventDefault();
    }
});

你的第二个作品看起来像是设计用来捕捉人们在多行中粘贴的。在这种情况下,您应该将其绑定到
keyup-paste

适用于我:

$('#comment').keypress(function(event) {
    if (event.which == 13) {
        event.preventDefault();
    }
});

更新

如果您试图阻止提交父表单而不是换行(这只有在您使用
textarea
,而您显然没有这样做的情况下才有意义),您可能需要检查以下问题:

使用全局选择器$('input')…如果您在页面ID上使用多个文本框('#comment'))会引起问题。当使用动态内容时,使用.live绑定它

$('input:not(textarea)').live('keypress',function(e) {
    if (e.which == 13) return false;
    if (e.which == 13) e.preventDefault();
});
(对文本框禁用enter,对文本区域保持启用enter)


函数stopRKey(evt){
var evt=(evt)?evt:((事件)?事件:空);
var节点=(evt.target)?evt.target:((evt.srcement)?evt.srcement:null);
if((evt.keyCode==13)和(&&(node.type==“text”){return false;}
} 
document.onkeypress=stopRKey;

它阻止用户在文本框中按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;
            }
        });
});

我在

$('textarea')。按键(函数(事件){
if((event.keyCode | | event.which)==13){
event.preventDefault();
返回false;
}
});
$('textarea').keyup(函数(){
var keyed=$(this.val().replace(/\n/g,
); $(this.html)(键入); });
如果要阻止特定文本框的Enter键,请使用内联js

<input type="text" onkeydown="return (event.keyCode!=13);"/>

如果要禁用所有类型的搜索文本框。给所有人一个类,然后像下面的“搜索框”一样使用该类

//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();
});

干杯!:)

我不明白为什么这里的每个人都建议使用jquery。 有一个非常简单的方法 对于特定的输入元素字段。您可以使用它的onKeyDown属性,并在其中使用e.preventDefault()方法。像这样:

<input type="text" onKeyDown={(e) => e.preventDefault()}/>
e.preventDefault()}/>

注意:这是React JSX使用此属性的方式,您可以使用HTML基本方式。

Alex解决方案的变体,但使用普通javascript代码。可用于任何键。默认情况下,阻止表单提交。这就是我的工作

$(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, " "));
    });
});
<input type="text" placeholder = "0.0"  onkeydown = "noareturnkey(event)">

它在小提琴中工作,但如果我将该脚本放在本地,它将不工作。@用户您的JavaScript中可能有错误,请启用控制台并查找任何错误。您应该使用$('textarea')。on('keypress',function(){blah;});因此,如果需要,您可以使用.off()@metalfenix将代码转换为
on()
方法,以编程方式终止它。确定如何编写代码取决于它的用途——在某些情况下,您永远不需要解除绑定,这意味着上面的代码可以。如果不是这样的话,你只需要换一种方式来写。我同意,但既然它们本质上是一样的,但有着能够解开束缚的前瞻性思维,你为什么不这样做呢?是否存在性能差异?textarea…基本上使用标记名而不是类或ID选择器orokay,尝试使用alert(例如alert(e.which);)对其进行调试。检查发出警报的文本并更改if语句。(页面上有javascript错误吗?;你能给我看看你正在使用的文本区域的html吗)好的,小姐,读一下那个。。。使用$('input:not(textarea)')。这将影响所有文本框和非文本区域。(我会修改我的答案)但是保持文本区域的enter处于活动状态总是好的,如果你必须使用文本区域-如果你禁用脚本,表单将提交。(你管理好了吗?)你正在使用哪个浏览器?您是否收到任何其他JS错误?选择器正确吗?您是否尝试
返回false如这里所建议的那样?