首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法使“输入”键调用函数而不是提交页面

无法使“输入”键调用函数而不是提交页面
EN

Stack Overflow用户
提问于 2015-01-22 14:05:23
回答 1查看 76关注 0票数 1

当我将函数映射到"Ctrl“键(char代码17)时,这段代码工作得很好。但是,当我将页面更改为"Enter“键(代码13)时,它会提交页面。为什么会发生这种事?

代码语言:javascript
运行
复制
<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
        <script type="text/javascript" src="../utilities/utility.js"></script>
        <script>
            $(document).ready(function(){
                $("#userInput").keyup(function(event){
                    if(event.keyCode == 17){ // <--- ***** RIGHT HERE *****
                        processInput();
                    }
                });
                flashcards_main();
            });
        </script>
        <script type="text/javascript" src="flashcards.js"></script>
    </head>
    <body>
        <p id="question">The question paragraph.</p>
        <p id="sub_question">sub-question</p>
        <form name="chloroForm">
            <input id="userInput" type="text">
            <input id="userSubmitBtn" type="button" value="Submit" onclick="processInput()">
        </form>
    </body>
</html>

编辑:

我更改了下面的函数,但我遇到了同样的问题:

代码语言:javascript
运行
复制
$(document).ready(function(){
    $("#userInput").keyup(function(event){
        if(event.keyCode == 13){
            event.preventDefault(); 
            processInput();
        }
    });

    flashcards_main();
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-22 14:06:33

您需要在事件上使用preventDefault()来停止按下键的默认行为:。您还需要使用keypress事件:

代码语言:javascript
运行
复制
$("#userInput").keypress(function(event){
    if (event.keyCode == 17 || event.keyCode == 13) {
        event.preventDefault(); 
        processInput();
    }
});

Example fiddle

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28090736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档