2012-04-02 16 views
0

Wir verwenden Sharepoint 2007 In der Masterseite haben wir Asp Bildschaltfläche. Wir möchten diese Bildschaltfläche als Standardschaltfläche für die Eingabetaste festlegen. Wir haben einige Wege ausprobiert, aber keinen Erfolg.So legen Sie die Standardschaltfläche für die EINGABETASTE fest

+0

Nur mit JavaScript möglich, da es sich nicht um eine normale Schaltfläche zum Senden handelt. –

+0

können Sie jede Tinte für die gleichen Thx viel für die Antwort teilen – Rushikesh

+0

Siehe meine Antwort .. –

Antwort

0

trotzdem komplizierter als ich dachte, aber möglich geworden ist. Zunächst einmal sicher, dass die ID Ihrer Kontrolle ist statisch:

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

Nun, was Sie benötigen die folgenden JavaScript-Code in Ihre .aspx oder .master Seite lautet:

<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> 

Sie müssen nur definieren die echte ID als Wert von DEFAULT_BUTTON_ID und der Code wird automatisch Keypress-Ereignis zu allen Eingängen (Text, Kontrollkästchen und Radio) und wenn Geben Sie ist gedrückt, wird die Schaltfläche als Standard angeklickt klicken.

Da Sie SharePoint verwenden bedeutet window.onload ist bereits in Verwendung, so müssen wir hinzufügen unser eigenes Ereignis überschreiben es nicht.

0

Sie können die DefaultButton-Eigenschaft auf die ID der Schaltfläche festlegen, die standardmäßig im Formular-Tag angezeigt werden soll.

+0

Ja, wir haben versucht, DefaultButton -Eigenschaft; Es funktioniert in. Net aber in Sharepoint funktioniert es nicht. Weiß nicht, warum – Rushikesh

+0

Überprüfen Sie die [link] (http://havivi.blogspot.com/2009/09/set-focus-set-default-button-to.html). Sie sollten zuerst das Steuerelement hinzufügen und dann die Standardschaltfläche festlegen, andernfalls setzen Sie die Standardschaltfläche auf Null, da das Steuerelement dem Formular nicht hinzugefügt wird. –

Verwandte Themen