Как удалить ввод изображения с обязательным полем, используя JavaScript

0

Я сделал сценарий, который проверяет ширину изображения и удаляет изображение, если ширина меньше определенной суммы.

Поле изображения требуется, и после того, как я его удалю, он все равно прошел проверку файла.

образец: http://jsfiddle.net/AUQYv/3/

<form action="">
    <input type="file" id="file" required />
    <input type="submit" value="Submit">
</form>

Javascript

var _URL = window.URL || window.webkitURL;

$("#file").change(function (e) {
    var file, img;


    if ((file = this.files[0])) {
        img = new Image();
        img.onload = function () {
            if(this.width<490||this.height<175){
            $("#file").val("").change();
            }
        };
        img.onerror = function () {
            alert("not a valid file: " + file.type);
        };
        img.src = _URL.createObjectURL(file);


    }

});

2 ответа

0
Лучший ответ

Попробуйте это.

<form action="" id="form" method="post">
    <input type="file" id="file" required accept='image/png, image/gif, image/jpeg, image/jpg'/>
    //your button submit
    <a href="#" id="submitForm">Submit</a>
</form>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">
//When click the button
$('#submitForm').click(function(){
  var validation = true; //Var to validation true
  if($('#file').val()){ //There image?
      if($('#file').width()<490 || $('#file').height()<175){
          validation = false;
      }
  }else{
     validation = false;
  }
  //Is true?
  if(validation){
    $('#form').submit();
  }else{
    alert("select a image");
  }
});
</script>
  • 0
    Извините, это не тот ответ, который я хочу. Я установил поле изображения обязательно, и после того, как я удалил изображение, оно все еще прошло проверку файла.
  • 0
    извините, но я вас не понимаю, не могли бы вы быть более конкретным со своим вопросом, пожалуйста?
Показать ещё 2 комментария
1

Ваш условный оператор устанавливает file = this.files[0]. Изменить на ==

Изменение: поскольку оба комментатора указали, что я ошибался, замените $("#file").val("").change():

с

$("#file").replaceWith($("#file").clone());
  • 1
    Это не для сравнения, а для присвоения значения. Если this.files[0] не определен, тогда весь блок if не выполняется - если нет, то у file есть значение, с которым можно работать внутри.
  • 0
    Извините, это не тот ответ, который я хочу. Код работает, только часть проверки после того, как мы удалили изображение. Я установил поле изображения обязательно, и после того, как я удалил изображение, оно все еще прошло проверку файла.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню