簡體   English   中英

如何為ENTER鍵設置默認按鈕

[英]How To set Default Button for ENTER key

我們使用的是Sharepoint 2007 ,其中在母版頁上具有“ asp圖像”按鈕。 我們想要將此圖像按鈕設置為Enter鍵的默認按鈕。 我們嘗試了一些方法,但沒有成功。

您可以將DefaultButton屬性設置為要在表單標簽中默認設置的按鈕的ID。

結果比我想象的要復雜,但仍然可能。 首先,請確保您的控件的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的值,該代碼將自動將按鍵事件附加到所有輸入(文本,復選框和單選),並且在按Enter鍵時,將單擊定義為默認值的按鈕。

當您使用SharePoint時,意味着window.onload已在使用中,因此我們必須添加自己的事件,而不要覆蓋它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM