在ASP.NET C#网站中,我有一个输入文件,将文件上传到我的服务器。为了克服无法样式输入类型=文件的问题,我创建了一个看起来像输入的样式div但实际上只是将消息中继到实际输入,该输出有display:none隐形。
我的问题:转发消息是不行的,即当我将点击消息转发到实际输入时,文件永远不会上传(没有任何反应)。我知道按钮有效,因为如果我点击实际输入,它会成功上传文件。
是否有一些ASP.NET安全措施阻止我做到这一点?什么出错了?我怎样才能实现我想做的事情:
有一个样式输入,其中type = file(不是无聊的浏览按钮)&将点击转发到实际输入?
我的实际输入有效:
<input id="fileUpload" type="file" Runat="server" NAME="fileUpload"/>
<asp:button id="btnSave" OnClick="bt1Clicked"
runat="server" Text="Upload File"></asp:button>
<asp:label id="lblMessage" runat="server"></asp:label>
我的风格按钮:
<a onclick="$(\'btnSave\').click(); return false;" href="#">test</a>
答案 0 :(得分:1)
不确定你的目标是什么,但这应该有效
<a onclick="$('<%= btnSave.ClientID %>').click(); return false;"
href="#">test</a>
为什么呢?因为默认情况下,asp.net为控件提供了自己的id,由ClientIdMode定义。另请参阅System.Web.UI
.Control.ClientID
以我的拙见,这将是一个更简洁的解决方案:
<a id="btnRelay" href="#">test</a>
单独使用JQuery进行连接,这样你的代码就不会被你的html所破坏。
$('btnRelay').click(function(event){
event.preventDefault();
$('<%= btnSave.ClientID %>').click()
}