2012-04-02 63 views
0

我們正在使用Sharepoint 2007其中在母版頁上我們有了Asp Image按鈕。我們希望將此圖像按鈕設置爲默認按鈕,以確認輸入按鍵。我們嘗試了一些方法,但沒有取得成功。如何設置ENTER鍵的默認按鈕

+0

只能使用JavaScript,因爲它不是普通的提交按鈕。 – 2012-04-02 06:54:12

+0

你可以請分享任何墨水爲相同的Thx很多答覆 – Rushikesh 2012-04-02 07:40:08

+0

看到我的答案.. – 2012-04-02 08:04:43

回答

0

原來更復雜的比我想象的,但可能仍然。首先,確保你的控件的ID是靜態的:

<asp:ImageButton runat="server" ID="MyImageButton" ClientIDMode="Static" ImageUrl="pic.gif" OnClick="ImageButtonClicked" /> 

現在你需要的是下面的JavaScript代碼在你.aspx.master頁:

<script type="text/javascript"> 
    var DEFAULT_BUTTON_ID = "MyImageButton"; 

    // Mozilla, Opera and webkit nightlies currently support this event 
    if (document.addEventListener) { 
     // A fallback to window.onload, that will always work 
     window.addEventListener("load", HandleDefaultButton, false); 
     // If IE event model is used 
    } else if (document.attachEvent) { 
     // A fallback to window.onload, that will always work 
     window.attachEvent("onload", HandleDefaultButton); 
    } 

    function HandleDefaultButton() { 
     var inputs = document.getElementsByTagName("input"); 

     //attach event for all inputs 
     for (var i = 0; i < inputs.length; i++) { 
      var input = inputs[i]; 

      //maybe already got handler so add instead of override 
      if (document.addEventListener) 
       input.addEventListener("keypress", InputElement_KeyPressed, false); 
      else if (document.attachEvent) 
       input.attachEvent("onkeypress", InputElement_KeyPressed); 
     } 
    } 

    function InputElement_KeyPressed(evt) { 
     if (DEFAULT_BUTTON_ID && DEFAULT_BUTTON_ID.length > 0) { 
      //old IE event module 
      if (typeof evt == "undefined" || !evt) 
       evt = window.event; 
      var keyCode = evt.keyCode || evt.which; 
      if (keyCode === 13) { 
       var oButton = document.getElementById(DEFAULT_BUTTON_ID); 
       if (oButton) { 
        oButton.click(); 
        return false; 
       } else { 
        alert("---DEBUG--- default button is defined but does not exist (" + DEFAULT_BUTTON_ID + ")"); 
       } 
      } 
     } 
     return true; 
    } 
</script> 

你只需要定義真實ID作爲DEFAULT_BUTTON_ID的值,代碼會自動將按鍵事件附加到所有輸入(文本,複選框和收音機),並且當按下輸入時,定義爲默認的按鈕將被點擊。

由於您使用SharePoint意味着window.onload已在使用中,所以我們必須添加我們自己的事件不會覆蓋它。

0

您可以將DefaultButton屬性設置爲您希望在表單標籤中默認使用的按鈕的ID。

+0

是的,我們嘗試DefaultButton屬性;它在.Net中工作,但在共享點,它不工作。 不知道爲什麼 – Rushikesh 2012-04-02 07:42:59

+0

簽出[link](http://havivi.blogspot.com/2009/09/set-focus-set-default-button-to.html)。您應該先添加控件,然後設置默認按鈕,否則將默認按鈕設置爲null,因爲控件未添加到窗體中。 – 2012-04-02 07:55:08

相關問題