繁体   English   中英

我如何让 javascript 函数在回车键上运行,而不是点击?

[英]how do I get javascript function to run on enter key, as opposed to click?

当我单击此按钮时,它会运行该功能并且一切正常。

<input id="input_listName" /><button id="btn_createList">add</button>

当我点击它时,它会运行:

$('#btn_createList').click(function(){
    $('.ul_current').append($('<li>', {
         text: $('#input_listName').val()
    }));
});

当我按下它时,它会将输入中的值附加到<li>元素。

如何重做此操作,而不是单击时运行函数,而是单击“输入键”时运行该函数?

我想一起隐藏提交键。 请注意,输入和提交周围没有表单标签,因为这是一个 API 应用程序,我只是尝试过滤而不是真正提交任何内容。

别。

你有一个表格。 如此对待它。

 document.getElementById('input_listName').addEventListener('submit', function(e) { e.preventDefault(); const li = document.createElement('li'); li.append(this.listName.value); document.querySelector(".ul_current").append(li); // optionally: // this.listName.value = "" }, false);
 <form id="input_listName"> <input type="text" name="listName" /> <button type="submit">add</button> </form> <ul class="ul_current"></ul>

将其设为表单可提供浏览器为您提供的所有好处。 在桌面上,您可以按 Enter 提交。 在移动设备上,虚拟键盘还可以提供快速访问提交按钮。 您甚至可以向<input />元素添加required验证规则,浏览器将为您处理所有这些。

event的帮助event ,您可以捕捉按下的enter (keycode = 13) 键,如我的示例所示。

有必要吗?

$('#btn_createList').keypress(function(event){
   if (event.keyCode == 13) {
    $('.ul_current').append($('<li>', {
         text: $('#input_listName').val()
    }));
    }
});

我想你想要的是检查按下了哪个键,对吗?

为此,您只需检查 event.keyCode === 13

因此,您的代码将类似于以下内容:

$('#btn_createList').keypress(function(event){
    if (event.keyCode === 13) {
         $('.ul_current').append($('<li>', {
             text: $('#input_listName').val()
         }));
    }    
});

希望这能解决问题!

<input id="input_listName" /><button id="btn_createList">add</button>这种语法在技术上是错误的,您的标签以<input>开头并以</button>结尾。 您还可以向您的函数添加一个简单的检查,如果用户尚未在输入字段中输入任何内容,则不应返回任何内容。

您还可以查看此备忘单以了解有关密钥代码的更多信息https://css-tricks.com/snippets/javascript/javascript-keycodes/

 $('#btn_createList').keypress(function(event){ if($('#input_listName').val()) { if (event.keyCode == 13) { $('.ul_current').append($('<li>', { text: $('#input_listName').val() })); } } });
 <div id="btn_createList"> <input id="input_listName" type="text"> <ul class="ul_current"> </ul> </div> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha256-4+XzXVhsDmqanXGHaHvgh1gMQKX40OUvDEBTu8JcmNs=" crossorigin="anonymous"></script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM