Параметры, не показывающие ключ поля файла, когда изображение удаляется с помощью jQuery - PullRequest
0 голосов
/ 25 июня 2018

У меня есть требование, когда необходимо удалить загруженное изображение.

В настоящее время, используя jQuery для удаления изображения, используйте указанный ниже код;

$(".image_remove").click(function(){
  $("#venue_pic").attr({src: null,
    alt: ""});
});

Также использовал это

$(".image_remove").click(function(){
  $("#venue_pic").val('');  
});

Но params не будет показывать атрибут поля файла как nil или "" (пустая строка).

Я знаю, что с помощью remove_attribute carrierwave можно сделать то же самое, но это будет включать дополнительный вызов ajax.

Но я хочу управлять им через params, чтобы в случае каких-либо изменений в теге поля файла значение обновлялось соответствующим образом.

Итак, как обновить (удалить) изображение в рельсах и почему params не обнаруживает пустое значение при вводе типа поля файла.

1 Ответ

0 голосов
/ 25 июня 2018

Вы можете сделать это

$(function(){
  $(".deleteButton").on("click", function(){
    $newInput = $(".picture").clone()
    $(".picture").remove()
    $(".pictureWrapper").append(
      $("<input type='file'>").addClass($newInput.attr("class")).attr("name", $newInput.attr("name"))
      //or
      //$("<input type='file' name='picture' class='picture'>")
    )
  })
})
.deleteButton {
  display: inline-block;
  border: 1px solid black;
  cursor: pointer;
  padding: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="pictureWrapper">
  <input type="file" name="picture" class="picture">
</div>
<div class="deleteButton">X</div>
...