Итак, у меня есть веб-страница .aspx следующим образом:
..
<form id="frm" runat="server">
<asp:FileUpload runat="server" id="fileupload" onchange="browsed()" />
<asp:Button runat="server" OnClick="Upload_Click" id="uploadbutton" class="uploadbutton" Text="start upload" Enabled="false" />
<div id="nfo" style="display: none">
blabla
</div>
</form>
..
Теперь, как вы правильно догадались, пользователь выбирает файл для загрузки, щелкает #uploadbutton
и, вуаля, после обратной передачи вызывается Upload_Click
. Затем я хочу показать div #nfo
с некоторыми эффектами jQuery во время загрузки. Для этого пишу:
$(function() {
$('.uploadbutton').click(function() {
$('#nfo').slideDown().show("fast");
})
})
и все работает нормально, пока пользователь не начнет просматривать в IE ... Прежде всего, в IE пользователь должен дважды щелкнуть #uploadbutton
- первый раз, чтобы отобразить #nfo
, второй раз по какой-то причине, чтобы инициировать обратную передачу. Во-вторых, после обратной передачи this.fileupload.HasFile
Upload_Click
показывает false. Однако FF и Chrome работают довольно хорошо.
Насколько я понимаю - в IE функция jQuery предотвращает что-то важное для asp:FileUpload
и останавливает обратную передачу. Хотя при втором щелчке он инициирует обратную передачу, но по-прежнему нет информации для asp:FileUpload
's Upload_Click
.
Любая помощь?
Обновление: последовал совету @ joelt'd. Оказалось, что возникла другая проблема, никогда не думал, что это может иметь значение, поэтому я не предоставил исходный код для этой части = (см. локализация‹ asp: FileUpload ›. Проблема с IE