我正在创建一个asp.net网站。它有一个文件上传按钮。上传href在以下代码中工作得很好。但是我想把这段代码嵌入到一个按钮中。
<a href="javascript:$('#<%=FileUpload1.ClientID%>').fileUploadStart()">Start Upload</a>
这是我想要嵌入到javascript代码上面的按钮。我也想要点击事件到这个按钮。
<input type="button" value="upload" runat="server" name="btnBeforeOk" onserverclick="btnBeforeOk_ServerClick" />
这是上面按钮的c#代码
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函数
<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”来运行这个小代码。但它不起作用。我在谷歌上搜索了两天,做了很多解决方案。什么都不管用。
发布于 2017-03-10 14:45:23
这行代码不起作用,因为您所做的只是将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%>')”部分。
它应该会返回你想要的url。
https://stackoverflow.com/questions/42711680
复制相似问题