我想使用jquery按钮来使用fileupload asp.net组件。这是我的代码:
<script type="text/javascript">
$(document).ready(function () {
$("#choose").on("click", function () {
$("#<%=upload.ClientID %>").click();
});
$("#<%=upload.ClientID %>").change(function () {
var selectedFile = jQuery(this).val();
var fileNameIndex = selectedFile.lastIndexOf("\\") + 1;
var filename = selectedFile.substr(fileNameIndex);
$("#filename").val(filename);
});
});
</script>
其中#choose是jquery按钮#upload我的asp:FileUpload组件和#filename是输入文本。然后我有另一个按钮(我们称之为“插入”),它使用上传的SaveAs()方法来保存文件。
这是aspx代码:
<asp:FileUpload ID="upload" runat="server"/>
<a id="choose" >Choose file...</a>
<input type="text" id="filename" value="No file selected" />
<asp:Button ID="insert" runat="server" Text="Send" OnClick="insert_Click"
点击jquery按钮fileupload打开窗口,我必须选择要上传的文件,Chrome和Firefox上的一切正常。
可悲的是,当我点击“插入”按钮时IE8上没有触发任何事件,只是清空上传文本。在第二次单击时,插入按钮工作,但上载组件为空并抛出异常,因为没有要saveas()的文件。
单击#choose后单击插入也不会触发Page_Load。但是如果我在使用#choose之前单击insert,它会触发Page_Load。所以,我认为在#choose点击之后插入点击不会回发。