2017-02-02 20 views
0

我在HTML中有一個字段。當我把它聚焦並按回車鍵,頁面重新加載。我真的不知道爲什麼。它不在表格標籤內 - 我不能使用表格標籤....我使用的是AngularJS。我不能使用表格標籤。我使用AngularJS。我不能使用表格標籤。我使用AngularJS。我不能使用表格標籤。我不能使用表格標籤....我使用AngularJS。在hiting之後刷新頁面在form標籤之外的單個文本輸入中輸入密鑰

HTML:

<div class="search-input"> 
    <input type="text" ng-model="q.searchPhrase" id="menu-search-input" placeholder="Search expression ..." /> 
</div> 
<div class="search-submit"> 
    <button ng-click="search()" type="button">Search</button> 
</div> 

編輯1:

search()函數並不重要,因爲它是在點擊觸發的事件和它的作品,我只是,當我點擊搜索按鈕。

標籤按鈕提交表單,當它有屬性「提交」,我想。不過,我使用的是div而不是按鈕標籤,但仍然在輸入文本時重新加載了文本輸入頁面。

編輯2:

搜索功能並不重要 - 內僅有的console.log();

+0

我不熟悉角度,但它可能是角動態創建html表單動態?檢查瀏覽器工具,如rightclick/inspect元素,也許是角度動態的形式。它的正常瀏覽器行爲是在字段中輸入提交表單。當按下ENTER鍵時,您可以通過返回錯誤的「onkeypress」(或類似事件)來省略。 – Gunnar

+1

你能提供你的'搜索'功能嗎? – Korte

+0

Html是完全沒問題的。它不會在我的情況下重新加載相同的HTML內容。請提供'search()'。 –

回答

0

標籤按鈕默認提交表單,你可以使用一個代替

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

你可以使用輸入代替

<input type="button" ng-click="search()">Search</input> 
0

我創建了一個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中,在這個修復功能之前就沒事了,但Chrome每次按下輸入按鈕時都會重新加載頁面。

相關問題