#javascript #jquery #html
#javascript #jquery #HTML
Вопрос:
Я добавляю предварительный просмотр / удаление изображения перед загрузкой с помощью jquery следующим образом :
HTML здесь:
<input type='file' id='input1'>
<img id='imagepreview1' src="http://placehold.it/100x100" />
JS здесь:
function readURL(input) {
if (input.files amp;amp; input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('#imagepreview1').prop('src', e.target.result).show().addClass('selected');
}
reader.readAsDataURL(input.files[0]);
}
}
$("#input1").change(function () {
readURL(this);
$('#imagepreview1').show();
});
var orig_src = $('#imagepreview1').prop('src');
$('#imagepreview1').click(function () {
$('#input1').replaceWith($('#input1').clone(true));
$('#imagepreview1').not('.selected').hide();
$('#imagepreview1.selected').prop('src', orig_src).removeClass('selected');
});
Теперь, когда я удаляю изображение щелчком мыши, это изображение, выбранное для ввода, не удаляет и не публикует данные из моей формы. кто может удалить выбор ввода, когда я удаляю изображение?
Проблемный рисунок (когда я удаляю изображение и показываю предварительный просмотр):
ПРИМЕЧАНИЕ: (У меня проверка в FF не сработала)
ДЕМО ЗДЕСЬ: http://jsfiddle.net/mkGSY /
Ответ №1:
Комментарии:
1. @WoIIe Я очень хочу узнать ваше решение
2. @Hiral: Вот так 🙂
3. @WoIIe: 1- кто твои люди
-1 for using jquery
? 2- пожалуйста, добавьте демо здесь4. @Hiral Стиль кодирования OP оооочень плох. Это сделано типичным любителем jquery-скриптов, который понятия не имеет, как кодировать хорошие веб-приложения с использованием javascript. Чрезвычайно медленный и не структурированный. (Мое мнение)
5. @user3142680 Почему я должен добавлять демо? Просто попробуйте сами?! Это всего лишь 1 строка кода, и ее не очень сложно реализовать.
Ответ №2:
Используйте собственный javascript
Если все будут просто использовать jQuery для таких простых задач, никто не узнает, как на самом деле работает браузерная реализация ECMAScript.
Вы можете легко использовать что-то вроде этого:
document.getElementById('input1').reset(); // My favourite
или, если вы предпочитаете идею сброса значения входного элемента:
document.getElementById('input1').value = ""; // Will work just in major browsers
document.getElementById('input1').value = null; // Much more cross-browser compatible
Если вы хотите придерживаться jQuery
… сделайте себе одолжение и используйте этот подход, который является чрезвычайно пуленепробиваемым (вместо использования .val('')
:
var input = $("#input1");
function clearFileUpload() {
input.replaceWith(input.val('').clone(true));
};