Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.11.2020, 10:15
Новичок на форуме
Отправить личное сообщение для tovarz Посмотреть профиль Найти все сообщения от tovarz
 
Регистрация: 13.02.2011
Сообщений: 6

Событие img.onload срабатывает несколько раз
Здравствуйте. Есть input type="file" accept="image/*". При выборе картинки она отображается в img src="" id='preloadimg'. Если несколько раз подряд выбирать файл, то onload происходит тоже несколько раз и по моему коду несколько раз срабатывает alert. Как сделать, чтобы onload сработало только один раз?
Вот код:

<input type="file" name="image" accept="image/*" id="ifile"><br>
<img src="" alt="Image preview..." id='preloadimg'>

<script>
$('#ifile').on('change', function () {
    $('#preloadimg').on('load', function (e) { 
		if(this.naturalWidth < 200 || this.naturalHeight < 200){
			URL.revokeObjectURL($('#preloadimg').attr('src'));
			$('#ifile').val('');
			alert('Изображение должно быть не меньше 200px х 200px');
			return false;
		}
	});

	$('#preloadimg').attr('src', URL.createObjectURL(this.files[0]));
});
</script>
Ответить с цитированием
  #2 (permalink)  
Старый 21.11.2020, 11:04
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от tovarz
Если несколько раз подряд выбирать файл, то onload происходит тоже несколько раз
Так и должно быть. Что вы хотите - ограничится первым выбором, то есть другое изображение выбрать уже нельзя, или если выбрано тоже самое то ...?
Ответить с цитированием
  #3 (permalink)  
Старый 21.11.2020, 11:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

tovarz,
строку 3 перенесите в строку 14.
строка 5 зачем?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
peerConnection addTrack не срабатывает второй раз serrrgggeee Общие вопросы Javascript 0 07.10.2019 09:13
Срабатывает 2 раза подряд одно событие alex-romanov jQuery 2 10.06.2019 21:54
Контроллер запускается несколько раз при загрузке страницы tayrin Angular.js 4 15.07.2014 08:29
Изменение value элемента несколько раз Jetro jQuery 4 04.06.2014 11:19
live click выполняется несколько раз hara jQuery 9 09.06.2010 10:58