2010-04-15 77 views
0

基本上我有一個asp.net網站,登錄和搜索頁面。ASP.net文本框輸入按鈕按下地獄

目前,我不知道爲什麼當用戶點擊登錄文本框(用戶名/密碼)或在Seach文本框中輸入時,該網站將被重定向到默認頁面。

我不知道爲什麼會發生這種情況,我試圖在包含搜索和登錄面板的面板上設置defaultButton,但似乎沒有工作。

我也試過用JavaScript捕捉按鍵事件,但它不工作。

我不知道是什麼事件被解僱,爲什麼,或爲什麼它似乎覆蓋了我試圖做的一切。

之前有人看過類似的東西嗎?

---------------編輯-------------------

<div class="searchBar" onkeypress="javascript:return 
    WebForm_FireDefaultButton(event,'ctl00_MainContent_logView1_LogRepeater_ctl02_lbSearch')"> 

    <input name="ctl00$MainContent$logView1$LogRepeater$ctl02$ctl02" type="text" /> 
    <a id="ctl00_MainContent_logView1_LogRepeater_ctl02_lbSearch" href="javascript:__doPostBack('ctl00$MainContent$logView1$LogRepeater$ctl02$lbSearch','')"> 
    Search</a> 
</div> 

好了,所以這裏是由ASP.net生成的代碼被忽略。

---------------更新----------------

我試着添加一個隱藏的按鈕,並設置按鈕作爲窗體的默認按鈕,並且每次都將其從重定向到默認頁面,但這確實意味着在文本框中按回車只是重新加載頁面,這更好,但仍然不是理想選擇。

+1

讓我們看看您的代碼? – 2010-04-15 15:05:38

+0

你可以發佈一些有問題的代碼嗎?否則,我們只是猜測。 – vfilby 2010-04-15 15:05:53

+0

如果你可以減少到重複的最小代碼,然後發佈代碼,這將有助於很多。 – ChrisF 2010-04-15 15:06:07

回答

1

這可能不是一個ASP.NET怪癖,因爲它是一個網頁瀏覽器的怪癖。

當您在單行文本字段中按Enter鍵時,瀏覽器會將表單提交到表單標籤中指定的操作。只是身體標記內

ASP.NET「有益」創建一個表單標籤,並把它裏面的所有body元素...

據我所知,您可以安全地移除此標籤; HTML規範允許表單標籤之外的字段用於JavaScript/AJAX操作。

0

我以前見過這種行爲,它發生時,窗體上的第一個按鈕是LoginControl。每次輸入被按下時,它都會觸發登錄的點擊事件,並將用戶註銷。你在使用LoginControl嗎?

最後,我不得不在登錄控制之前添加一個隱藏的按鈕。隱藏的按鈕沒有做任何事情,但它阻止了LoginControl的執行。

0

我曾經有過同樣的問題。我們有一個登錄表單,當用戶點擊輸入時可以正常工作。然後,我們在頁面頂部的菜單欄中添加了一個搜索框/按鈕。突然當用戶打進輸入時,他們會嘗試執行搜索。我通過將頁面的Form的.DefaultButton設置爲我的登錄按鈕來解決它。