Я определил некоторые обработчики событий щелчка следующим образом:
$(document).ready(function () {
/*
* Since the "Start Upload" button is available, we don't need to worry about starting the
* upload when the user clicks "Update". But we need to make sure to display an error message
* if there are files in the uploader that have not been uploaded yet.
*/
$('#myAccount p.buttons input[alt="Update"]').click(function (event) {
// check if there are files in the uploader
if (uploader.files.length > 0) {
// if there are files that have not been uploaded yet, we need to show an error message
if (uploader.total.uploaded != uploader.files.length) {
// if the error message hasn't been created yet, create it
// else, it'll already be visible so we don't need to do anything
if ($('#upload_error').length == 0) {
$('<p id="upload_error">Error!</p>').insertAfter('#myAccount p.buttons input[alt="Cancel"]');
}
event.preventDefault(); // stop the click event
}
}
// continue click event as normal
});
});
... и ...
// if the cancel button is clicked, then remove the files from the uploader
$('#myAccount p.buttons input[alt="Cancel"]').click(function (event) {
uploader.splice(0, uploader.files.length);
// continue click event as normal
});
Оба прекрасно работают в Firefox, но в IE8 и IE7 (режим совместимости) они работают не всегда.
Чтобы быть более конкретным, этот материал для "загрузки" связан с загрузчиком файлов Plupload . По сути, у меня есть этот загрузчик в форме. Форма отправляется нормально, и вышеописанные обработчики кликов работают нормально, если я вообще не касаюсь загрузчика.
Однако в следующем случае описанные выше обработчики кликов не работают: я ставлю файлы в очередь и позволяю загрузчику делать свое дело, поэтому все файлы были загружены; теперь я нажимаю кнопку отправить в форме, и ничего не происходит, но я ожидаю, что форма будет отправлена. Каждый раз, когда я взаимодействую с загрузчиком, обработчики событий click не работают.
Я надеюсь, что мои комментарии прояснят мои намерения. Есть идеи, почему это не работает в IE 7/8? Что я делаю неправильно? event.preventDefault()
обрабатывается по-другому в IE?
Спасибо.