2014-02-14 3 views
0

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

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

образец: 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); 


    } 

}); 

ответ

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's 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

извините, но я вас не понимаю, можете ли вы быть наиболее конкретным с вашим вопросом, пожалуйста? – Netzach

+0

Изображение - обязательное поле. Когда вы нажимаете кнопку «Отправить», не загружая изображение, вы не можете действовать, поскольку он будет запрашивать изображение. Но после того, как вы загрузили изображение шириной менее 400 пикселей, файл будет удален, но вы можете продолжить работу без загрузки изображения. –

1

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

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

с

$("#file").replaceWith($("#file").clone()); 
+1

Это не предназначено для сравнения, а как назначение значения. Если 'this.files [0]' не определено, то весь блок if не будет выполнен - ​​если это не так, тогда 'файл' имеет значение, с которым можно работать внутри. – CBroe

+0

Извините, это не тот ответ, который я хочу. Код работает, только часть проверки после удаления изображения. Я установил поле изображения, и после того, как я удалил изображение, он все равно прошел проверку файла. –

+0

Я отредактировал свой ответ с другим решением, так как я ошибся в вашем условном заявлении. – steinmas

Смежные вопросы