如何使用javascript删除带有必填字段的图像输入

如何使用javascript删除带有必填字段的图像输入,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我做了一个脚本,检查图像的宽度,如果宽度小于一定量,就删除图像 图像字段是必需的,在我删除它之后,它仍然通过了文件验证 样本: Javascript var _URL = window.URL || window.webkitURL; $("#file").change(function (e) { var file, img; if ((file = this.files[0])) { img = new Image(); img.on

我做了一个脚本,检查图像的宽度,如果宽度小于一定量,就删除图像

图像字段是必需的,在我删除它之后,它仍然通过了文件验证

样本:


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);


    }

});
var URL=window.URL | | window.webkitURL;
$(“#文件”).change(函数(e){
var文件,img;
如果((file=this.files[0])){
img=新图像();
img.onload=函数(){

如果(this.width您的条件语句正在设置
file=this.files[0]
。请更改为
=

编辑: 既然两位评论者都指出我错了,那就替换我吧
$(“#文件”).val(“”.change()

$("#file").replaceWith($("#file").clone());
试试这个

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

//你的按钮提交
//单击按钮时
$(“#提交表单”)。单击(函数(){
var-validation=true;//var-to-validation-true
如果($('#file').val(){//有图像吗?

if($('#file').width()这不是作为比较,而是作为一个赋值。if
This.files[0]
未定义,则整个if块未执行–如果未执行,则
文件
中有一个可在内部使用的值。抱歉,这不是我想要的答案。代码正在工作,只是我们删除图像后的验证部分。我设置了图像字段是必需的,在删除图像后,它仍然通过了验证文件验证。我用不同的解决方案编辑了我的答案,因为我误解了你的条件语句。谢谢。这个答案有效,但只是第一次。你第二次上传同一张图片时,它通过了验证,即
change()
方法在您第一次输入时不会重新初始化,因此
更改()
code没有被第二次调用。很抱歉,这不是我想要的答案。我将图像字段设置为必填字段,并且在删除图像后,它仍然通过了文件验证。抱歉,但我不明白您的意思,请您详细说明您的问题。图像是必填字段。当您单击“提交”而不上载im时年龄,您无法继续,因为它将要求图像。但在您上载宽度小于400px的图像后,该文件将被删除,但您可以不上载图像继续。
<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>