Javascript 如何预防';按enter';在输入中触发事件?Java脚本

Javascript 如何预防';按enter';在输入中触发事件?Java脚本,javascript,jquery,preventdefault,keyup,Javascript,Jquery,Preventdefault,Keyup,我有一个输入和一个附加按钮。点击按钮调用一些函数。但我不希望在用户“按enter键”时调用此函数。另一方面,我想在这个输入中使用keyup来调用其他函数。所以我把 $(document).on('keyup', '#id', function(e){ call();//calling some function if (e.which == 13 || event.keyCode == 13) { e.preventDefault();//

我有一个输入和一个附加按钮。点击按钮调用一些函数。但我不希望在用户“按enter键”时调用此函数。另一方面,我想在这个输入中使用keyup来调用其他函数。所以我把

$(document).on('keyup', '#id', function(e){
        call();//calling some function
        if (e.which == 13 || event.keyCode == 13) {
            e.preventDefault();//I also tried to return false
        }
     });
但它似乎不起作用,有人有主意了?

试试这个:

$(document).on('keyup', '#id', function(e){
    if (e.which == 13 || e.keyCode == 13) {
        e.preventDefault();//I also tried to return false
    }else{
         call();//calling some function
    }
 });

不要使用keyup,因为表单是在keydown时发送的。

您是否尝试过将switch.call()函数转换为一个简单的alert(),只是为了测试@Oyeme和@Jai代码似乎工作正常。

仍不工作,我收到以下消息:未捕获类型错误:无法读取undefinedtry的属性“0”以更改标识对不起,你的确切意思是什么?@Newben此函数中没有问题。仍不工作,我收到以下消息:未捕获类型错误:无法读取undefinedtry的属性“0”未定义文档中的
#id
是什么?这是此元素所独有的还是其他元素也具有相同的id。您是如何获得此信息的:
Uncaught TypeError:在输入某些内容后无法读取未定义的
的属性“0”这是因为call()函数在输入不正确时返回“invalid”
$(document).on('keyup', '#id', function(e){
    if (event.keyCode != 13) {
        e.preventDefault();
        call();//calling some function
    }
    return false;
 });