javascript - 页面导航到 localhost :3000/? 在输入框中输入按下

标签 javascript jquery json api haml

我正在使用从输入字段获取搜索查询的 NewYorkTimes API,但是,当我在键入输入后按回车键时,我的本地主机会重新加载并导航到 localhost:3000/?

我在控制台中使用 console.log(url) 并且 url 是正确的,因为 JSON 请求返回结果,但结果不会以 HTML 格式显示,因为页面会自动导航。不确定是什么导致了这种情况的发生。

form
   span.material-icons search
   input.form-control(id="input", placeholder="Search for articles, headlines, etc.")

// SHOWS SEARCH RESULTS WHEN THE USER PRESSES ENTER
$("#input").keypress(function(event) {
    if (event.keyCode == 13) {
        searchArticles(this.value);
        $("#input").val("");     
    }
});

// MAKES THE REQUEST AND DISPLAYS THE NEWS BASED ON RESULTS
function searchArticles(term) {
    term = term.replace(" ", "+");
    searchURL = "http://api.nytimes.com/svc/search/v2/articlesearch.json?q=" + term + "&api-key=" + searchAPI;
    console.log(searchURL);
    $.getJSON(searchURL, function(api) {
        api.response.docs.forEach(function(data) {
            link = data.url;
            cardTitle = data.headline;
            postedBy = data.byline.original;
            createCardElements();
        });
    });
}

这是示例 JSON 请求:

http://api.nytimes.com/svc/search/v2/articlesearch.json?q=new+york+times&page=2&sort=oldest&api-key=sample-key

最佳答案

这很可能是因为您没有在按键事件的回调中调用 event.preventDefault(),因此正在提交表单。

在输入字段上按回车键时执行的默认操作通常是提交包含该字段的表单(尽管 it seems like this may be browser dependent )。调用 event.preventDefault() 会停止任何默认操作的发生,从而让您的代码不受干扰地运行。

Returning false from the callback function has a similar, but not identical, effect.

关于javascript - 页面导航到 localhost :3000/? 在输入框中输入按下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34912058/

相关文章:

javascript - 将对象数组转换为单个对象

javascript - 为什么 BootstrapValidator 不工作?

SQLSTATE 58004,在 DB2 LUW 中的 LISTAGG 中使用 JSON_OBJECT() 中的 NULL 时出现错误 "invalid qnc assigment"

java - Jackson 的多态反序列化问题

php - 禁用 Ajax/http 成功消息?

javascript - 来自不同表单的输入值

javascript - Ngfor 对象列表并从主数组中的对象之一内的数组再次循环

javascript - 用于新段落文本的 chrome MutationObserver

javascript - 如何在附加事件之前启动js代码?

python - 如何使用 GraphQL 模式进行类似 JSON 模式的数据验证?