簡體   English   中英

使用javascript啟用/禁用ASP.NET控件

[英]Enable/Disable ASP.NET control with javascript

我正在構建一個頁面來上傳服務器上的Excel文件以進行導入操作。 所以一個javascript檢查文件選中文件擴展名void其他文件類型。 現在我正在嘗試啟用上傳ASP.NET按鈕,但javascript返回錯誤document.getElementById(...)為null。

這里的代碼:

<script type="text/javascript" language="javascript" defer="defer">
    function enableControl() {
        document.getElementById('button').disable = false;
    }

    function disableControl() {
        document.getElementById('button').disable = true;
    }

    function checkExcelFileUpload(elem) {
        var filePath = elem.value;
        if (filePath.indexOf('.') == -1)
            return false;
        var validExtensions = new Array();
        var ext = filePath.substring(filePath.lastIndexOf('.') + 1).toLowerCase();
        //Add valid extentions in this array
        validExtensions[0] = 'xls';
        //validExtensions[1] = 'pdf';
        for (var i = 0; i < validExtensions.length; i++) {
            if (ext == validExtensions[i])
                return true;
        }
        elem.value = '';
        alert('Sono ammessi solo file di Excel 97-2003');
        return false;
    }
</script>
<asp:FileUpload ID="fileupload" runat="server" size="50" onchange="javascript:try{if(checkExcelFileUpload(this) == true){enableControl();}else{disableControl();}}catch(err){alert(err);};" />
<asp:Button ID="button" runat="server" Text="Upload" Enabled="False" />

我在互聯網上搜索,我發現getElementById其他語法,但我仍然有這個問題。 你能幫助我嗎?

謝謝

選項1由於您的按鈕是服務器端控件,因此呈現的ID將與您指定的ID不同。 使用以下代碼生成ctl$body$button (這些行中的某些內容取決於控件的嵌套)。

document.getElementById('<%= button.ClientID %>')

選項2如果您使用的是ASP.NET 4,則可以使用Static客戶端ID模式。

<asp:Button ID="button" runat="server" ClientIDMode="Static" Text="Upload" Enabled="False" />

http://weblogs.asp.net/scottgu/archive/2010/03/30/cleaner-html-markup-with-asp-net-4-web-forms-client-ids-vs-2010-and-net -4-0-series.aspx

代替:

document.getElementById('button').disable = false;

你可能想要:

document.getElementById('<%= this.button.ClientID %>').disabled = false;

暫無
暫無

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

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