2010-01-16 118 views
0

好吧,我正在努力使ASP.NET網址看起來很人性化,就像它解釋了in this question一樣。所以我創建了一個ASP.Net表單,並在其上放置了asp:textboxasp:button。我還設置onclientclick屬性來調用通過設置windows.location.href導航到智能URL的JS功能。在Firefox中,它運行良好,但在IE和Opera中,瀏覽器首先導航到智能url,然後它關閉連接並使用asp.net表單操作發送回發。如何將html按鈕設置爲ASP.Net窗體的默認值?

我試圖用html按鈕來代替服務器來解決它。它的工作原理,但問題是它不能被設置爲asp.net窗體的默認值。所以'如果用戶點擊它,它會完成它的工作。但是,如果用戶只是在表單處於活動狀態時按下Enter鍵,表單纔會執行其操作,所以按鈕不會被按下,並且不會發生JS URL重寫。那我該如何解決這個問題呢?

我的JS是這樣的:

function searchRedirect() { 
    var query = $get('colSearch'); 
    window.location.href = 'colSearch?q=' + query.value; 
    return false; 
} 

和search.aspx我有

<form id="MainForm" runat="server" method="get"> 
     <asp:TextBox id="colSearch" runat="server" Width="615px" CssClass="searchLine"></asp:TextBox> 
     <input id="Button1" type="button" value="Search!" onclick="searchRedirect();" class="search" /> 

我也試圖與asp:button

<form id="MainForm" runat="server" method="get" defaultbutton="submitReqBtn"> 
     <asp:TextBox id="colSearch" runat="server" Width="615px" CssClass="searchLine"></asp:TextBox> 
     <asp:Button runat="server" Text="Search!" ID="submirReqBtn" 
      onclientclick="searchRedirect();" CausesValidation="False" 
      EnableViewState="False" UseSubmitBehavior="False"></asp:Button> 
</form> 

回答

2

你的OnClientClick事件需要返回假;

+0

我試着用'asp:button' - 仍然是瀏覽器關閉連接。我在問題中添加了示例代碼 - 可能是我在代碼中弄錯了。 – flashnik 2010-01-16 15:21:51

+0

好吧,我加了'return false;'在onclientclick中的按鈕描述,所以它看起來像 'onclientclick =「searchRedirect(); return false;」' 和一切開始工作。 謝謝! – flashnik 2010-01-21 12:47:22

0

的形式接受一個屬性表示該按鈕被設置爲默認值:使用它作爲在

<form id="form1" runat="server" defaultbutton="Button1"> 

其中Button1的是在頁面上的按鈕的ID。

+0

它沒有工作,因此指定爲默認的按鈕應該實現IButtonControl接口。 Html按鈕不能實現它,因爲它只是一段html代碼 – flashnik 2010-01-16 15:09:52