Я сделал сценарий, который проверяет ширину изображения и удаляет изображение, если ширина меньше определенной суммы.
Поле изображения требуется, и после того, как я его удалю, он все равно прошел проверку файла.
образец: 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);
}
});
Попробуйте это.
<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>
Ваш условный оператор устанавливает file = this.files[0]
. Изменить на ==
Изменение: поскольку оба комментатора указали, что я ошибался, замените $("#file").val("").change()
:
с
$("#file").replaceWith($("#file").clone());
this.files[0]
не определен, тогда весь блок if не выполняется - если нет, то у file
есть значение, с которым можно работать внутри.