2017-03-10 15 views
0

我正在創建一個asp.net網站。它有一個文件上傳按鈕。使用以下代碼上傳href可以正常工作。但是我想把這段代碼嵌入到一個按鈕中。如何將以下href javascript代碼嵌入到asp.net中的按鈕中

<a href="javascript:$('#<%=FileUpload1.ClientID%>').fileUploadStart()">Start Upload</a> 

這裏是我想嵌入上面的JavaScript代碼的按鈕。我也想點擊這個按鈕的事件。

<input type="button" value="upload" runat="server" name="btnBeforeOk" onserverclick="btnBeforeOk_ServerClick" /> 

這是我上面這個按鈕

 protected void btnBeforeOk_ServerClick(object sender, EventArgs e) 
    { 
     //Response.Write("<script type=\"text/javascript\">window.location.href = \"javascript:$('#<%=FileUpload1.ClientID%>').fileUploadStart()\"; </ script > "); 
     //Page.ClientScript.RegisterStartupScript(this.GetType(), "myScript", "onlick();", true); 
     ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "onlick()", true); 
    } 

我打電話下面從按鈕的C#代碼JavaScript函數的C#代碼

<script type="text/javascript"> 
     function onlick() { 
    location.href = "javascript:$('#<%=FileUpload1.ClientID%>').fileUploadStart()" 
    alert("Alert works well but above code is not running") 
} 
      </script> 
這段代碼的

警報部分運作良好。但是,警報上方的小href代碼運行不正常,因爲它與asp.net中的'<a href>'標記一起運行良好。我也試着用「window.location」和「windows.location.href」來運行這個小代碼。但它不起作用。我在谷歌搜索了2天,並做了很多解決方案。沒有工作。

回答

0

這行代碼不起作用,因爲您所做的只是將location.href設置爲等於字符串文字(將window.loaction.href設置爲字符串的值)的值一個有效的URL是正確的行爲),但是在這種情況下字符串文字不是一個有效的url。

它在你的html中內聯工作,因爲字符串被解釋爲javascript,它執行代碼行,並且該行代碼生成一個字符串,其中包含所需url的值。但是在這種情況下,該行代碼已經在腳本中,並且被解釋如此。

因此,爲了執行它,您需要它不像現在這樣是一個字符串文字,而是它自己的實際代碼行。

像這樣:

<script type="text/javascript"> 
    function onlick() { 
     window.location.href = $('#<%=FileUpload1.ClientID%>').fileUploadStart() 
    } 
</script> 

這將執行你的jQuery選擇返回jQuery對象的 「fileUploadStart」 功能,即 「$( '#<%= FileUpload1.ClientID%>')」部分代碼。

這應該可能會返回您以後的網址。

相關問題