2012-04-02 11 views
0

Sharepoint 2007を使用しています。マスターページでは、[画像]ボタンがあります。この画像ボタンをエンターキー押下のデフォルトボタンとして設定したいと考えています。我々はいくつかの方法を試しましたが、成功を収めませんENTERキーのデフォルトボタンを設定する方法

+0

通常の送信ボタンではないので、JavaScriptでのみ可能です。 –

+0

あなたは返信のために同じThxの多くのインクを共有することができます – Rushikesh

+0

私の答えを参照してください.. –

答えて

0

それにもかかわらず、より多くの私は思ったよりも複雑でなく、可能性が判明。まず第一に、あなたのコントロールのIDが静的であることを確認してください。

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

今、何が必要あなたの.aspx.masterページで、次のJavaScriptコードです:

<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の値であり、コードは自動的にすべての入力(テキスト、チェックボックス、ラジオ)にkeypressイベントを添付します。を入力すると、デフォルトとして定義されたボタンがクリックされます。

SharePointを使用しているのはwindow.onloadが既に使用されているためです。を追加する必要があります。独自のイベントはそれを上書きしません。

0

DefaultButtonプロパティを、フォームタグのデフォルトにするボタンのIDに設定できます。

+0

はい、私たちはDefaultButtonプロパティを試しました;それはネットで動作していますが、Sharepointでは動作しません。 理由を知らない – Rushikesh

+0

[link](http://havivi.blogspot.com/2009/09/set-focus-set-default-button-to.html)をチェックしてください。最初にコントロールを追加してから、デフォルトのボタンを設定する必要があります。そうしないと、コントロールがフォームに追加されないため、デフォルトのボタンをnullに設定します。 –

関連する問題