Я хочу создать «сценарий загрузчика изображений». Я не хочу использовать элемент ввода. При нажатии на красное изображение появится системное окно, и вы можете выбрать файл изображения. Но это не работает в IE 9.Изображение заменяет элемент ввода
JQuery код:
// this part of code does not work in IE9
$('img').click(
function(){
$('#photoimg').trigger('click');
});
// this works fine
$('#photoimg').live('change', function(){
$("#preview").html('');
$("#preview").html('<img src="loader.gif" alt="Uploading...."/>');
$("#imageform").ajaxForm({
target: '#preview',
success: function() {
alert('IMG was loaded.');
}
}).submit();
});
HTML код:
<img id="icon" src="http://ynternet.sk/test2/close_1.jpg">
<form id="imageform" method="post" action='upload_file.php'>
<input type="file" name="photoimg" id="photoimg" />
</form>
<div id='preview'> </div>
Пример:
http://ynternet.sk/test_4/
Извините, это была просто ошибка копирования/вставки. Просто просмотрите новое редактирование и пример. http://ynternet.sk/test_4/ – Patrik
Сценарий работает над jsfiddle, но не загружает изображение на сервер. Не берите на jsfiddle, вы не можете загрузить изображение, так что вы не можете видеть проблему. – Patrik
Комментарии в вашем коде (в вопросе) говорят, что клик img - это часть, которая не работает, но обработчик события изменения и загрузка «отлично работает» - вы говорите, что на самом деле это наоборот? Вы можете попробовать '$ ('# photoimg'). Change (...' вместо '$ ('# photoimg'). Live ('change' ...' - не уверен в IE9, но я уверен в более старом IE событие изменения не пузырилось, что означало бы, что он не будет работать с '.live()'. – nnnnnn