我想从用户那里抽象出文件浏览对话框,只显示一个上传按钮,如下所示:
<input type="button" id="uploadFile" value="Upload" />
<div class="hidden">
<form id="uploadFileForm" method="post" enctype="multipart/form-data">
<input type="file" id="browseForFiles" />
<input type="button" id="submitFile" value="Submit File" runat="server"
onclick="return true;"
onserverclick="SubmitFile_Click" />
</form>
</div>
$("#uploadFile").click(function () {
// trigger hidden file dialog
$("#browseForFiles").click(); // works
});
$("#browseForFiles").change(function () {
$("#submitFile").click(); // doesn't work; doesn't call onserverclick
});
物理点击submitFile
按钮可以正常工作并调用服务器端方法,但由于我希望隐藏实际的服务器端按钮,因此用户无法进行物理点击。 你如何伪造jQuery / Javascript中的物理点击?
编辑:
我也尝试过:
<input type="submit" id="submitFile" value="Submit File" runat="server"
onclick="return true;"
onserverclick="SubmitFile_Click" />
$("#uploadFileForm").submit(); // doesn't work either
答案 0 :(得分:0)
你试过这个吗?
$('#uploadFileForm').submit()
答案 1 :(得分:0)
$("input[id$='submitFile']").click();
有效。
我没有意识到ASP.NET正在将元素的ID替换为类似ctl00_PlaceHolderMain_submitFile
的内容,即使使用常规HTML控件也是如此!
$("input[id$='submitFile']")[0].click();
也适用。