ASP.Net 2.0還引入了DefaultButton的概念。
這是可在ATLEAST形式和麪板元素:
<form id="form1" runat="server" defaultbutton="Button2">
<div>
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
<br />
<asp:Button id="Button1" runat="server" text="1st Button" onclick="Button1_Click" />
<br />
<br />
<asp:panel id="something" defaultbutton="button3" runat="server">
<asp:TextBox id="TextBox2" runat="server"></asp:TextBox>
<br />
<asp:Button id="Button2" runat="server" text="2nd Button" onclick="Button2_Click" />
<br />
<asp:Button id="Button3" runat="server" text="3rd Button" onclick="Button3_Click" />
</asp:panel>
<br />
<br />
</div>
</form>
所以,當你加載頁面,或在TextBox1中輸入文本,按Enter鍵將提交Button2的。當您在TextBox2中輸入文本時,按Enter鍵將提交Button3 - 就像您在Panel中一樣。
這是由ASP.Net創建的onkeypress方法驅動的。
當頁面加載時,IE和Firefox都會突出顯示Button2(如您所願)。
如果您知道哪個按鈕將被聲明爲defaultbutton,那麼您可以使用通常用於爲所有瀏覽器設置樣式的CSS。
相當惱人的是,當你關注任一文本框時,IE會(不正確)突出顯示Button1。
這是因爲IE瀏覽器的默認行爲是由一些JavaScript通過ASP.Net發出覆蓋:
<script type="text/javascript">
//<![CDATA[
WebForm_AutoFocus('Button2');//]]>
</script>
但是,那麼IE將忽略,一旦其他元素具有焦點,並返回到突出錯按鈕(除非用戶在本例中明確地點擊它,否則不會被使用)。
除了用圖像按鈕替換它們之外,我不確定我還能提出什麼建議。
是的,但沒有回答這個問題。我試圖改善這個問題,所以它更清楚我在找什麼。 – Alf 2009-01-14 12:30:16