Javascript 点击enter键后刷新页面在表单标记外输入单个文本

Javascript 点击enter键后刷新页面在表单标记外输入单个文本,javascript,html,angularjs,forms,input,Javascript,Html,Angularjs,Forms,Input,我有一个HTML字段。当我聚焦并按下回车键时,页面重新加载。我真的不知道为什么。它不在表单标签内-我不能使用表单标签 我用安格拉JS HTML: 搜寻 编辑1: search()函数并不重要,因为它是在单击事件时启动的,它的工作方式与我单击搜索按钮时的工作方式相同 标记按钮提交一个表单,当它有属性“submit”时,我想。然而,我使用了一个div来代替按钮标签,但当我点击enter时,它仍然会在文本输入中重新加载页面 编辑2: 搜索功能并不重要-内部只是一个console.log() 标记按

我有一个HTML字段。当我聚焦并按下回车键时,页面重新加载。我真的不知道为什么。它不在表单标签内-我不能使用表单标签

我用安格拉JS

HTML:


搜寻
编辑1:

search()函数并不重要,因为它是在单击事件时启动的,它的工作方式与我单击搜索按钮时的工作方式相同

标记按钮提交一个表单,当它有属性“submit”时,我想。然而,我使用了一个div来代替按钮标签,但当我点击enter时,它仍然会在文本输入中重新加载页面

编辑2:


搜索功能并不重要-内部只是一个console.log()

标记按钮默认情况下提交表单,您可以使用a

<div class="search-submit">
    <a ng-click="search()">Search</a>
</div>
<input type="button" ng-click="search()">Search</input>

搜寻

您可以使用输入

<div class="search-submit">
    <a ng-click="search()">Search</a>
</div>
<input type="button" ng-click="search()">Search</input>
搜索

我创建了一个JS函数:

function bugFix() {
    if (window.event.keyCode == 13) {
        console.log("ENTER PRESSED");
        window.event.preventDefault();
        window.event.stopPropagation();
        return false;
    }
}
将事件调用添加到输入:

<input type="text" onkeydown="bugFix()" ng-model="q.searchPhrase" id="menu-search-input" placeholder="Search expression ..." />


它是有效的。在IE中,使用此修复功能之前一切正常,但每次按下enter键时,Chrome都会重新加载页面。

我不熟悉angular,但angular是否会动态创建html表单?检查浏览器工具,如右键单击/检查元素,可能有来自angular的动态形式。它的正常浏览器行为是在字段中输入并提交表单。当按下ENTER keycode时,您可以通过返回false“onkeypress”(或类似事件)来忽略这一点。您是否可以提供
搜索
功能?Html完全可以。在我的例子中,它不会使用相同的HTML内容重新加载。请提供
search()