FileUpload控制項修改

來源:互聯網
上載者:User

FileUpload正常格式是一個文字框加一個按鈕,但是我們有時候會想要自訂按鈕的樣式,那麼我們就需要隱藏一個FileUpload控制項,然後自己加一個按鈕,點擊這個按鈕選擇上傳檔案,這裡有個地方要注意,FileUpload出於安全考慮,如果是其他按鈕觸發的他的onclick事件,選擇的檔案,是無法通過驗證的,submit會失敗。所以,不能用其他按鈕觸發FileUpload控制項的onclick事件。

那麼就要求我們,做的效果是,點擊自己添加的按鈕,但實際是點擊的FileUpload控制項的按鈕。思路是用自訂顯示的覆蓋在FileUpload控制項上,但是發生點擊時,點擊的是FileUpload控制項。

下面的代碼可以實現,至於FileUploadSubmit()這個方法,是選擇檔案後,觸發的js事件,這時候就可以提交伺服器了

            <input type="text" id="txt" name="txt">
            <input type="button" onmousemove="FileUploadImage.style.pixelLeft=event.x-60;FileUploadImage.style.pixelTop=this.offsetTop;"
                value="請選擇檔案" size="30">
            <asp:FileUpload ID="FileUploadImage" runat="server" onchange="txt.value=this.value;FileUploadSubmit()"
                Style="position: absolute; filter: alpha(opacity=0);" size="1" hidefocus />

如果是IE9的話,換成下面代碼

            <input type="text" id="txt" name="txt">
            <input type="button" onmousemove="FileUploadImage.style.pixelLeft=event.x-60;FileUploadImage.style.pixelTop=this.offsetTop+17;"
                value="請選擇檔案" size="30">
            <asp:FileUpload ID="FileUploadImage" runat="server" Width=50 onchange="txt.value=this.value;FileUploadSubmit()"
                Style="position: absolute; filter: alpha(opacity=0);" size="1" hidefocus />

因為ie9的相對位置好像不對,可以把filter: alpha(opacity=0);這個刪掉,就能看到效果了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.