Javascript是验证文件输入的最佳方法,如果ul中有内容

Javascript是验证文件输入的最佳方法,如果ul中有内容,javascript,jquery,forms,file,input,Javascript,Jquery,Forms,File,Input,我有一个非常明确的问题,我有一个输入文件,每次我添加一个文件,一个新的li文件名被添加到一个现有的ul 我想创建一个函数来验证文件输入字段,如果ul.file list中存在li,我想删除required属性,如果ul.file list为空,我想将required属性添加到文件输入字段中 我想检查ul中li的长度,如果长度不等于0,则从文件输入中删除require,问题是事件发生在我单击“添加文件”按钮时,并且是在实际添加文件之前,因此例如,我在ul中没有li,我单击“添加文件”按钮,我将得到

我有一个非常明确的问题,我有一个输入文件,每次我添加一个文件,一个新的
li
文件名被添加到一个现有的
ul

我想创建一个函数来验证文件输入字段,如果
ul.file list
中存在
li
,我想删除
required
属性,如果
ul.file list
为空,我想将
required
属性添加到文件输入字段中

我想检查ul中li的长度,如果长度不等于0,则从文件输入中删除require,问题是事件发生在我单击“添加文件”按钮时,并且是在实际添加文件之前,因此例如,我在ul中没有li,我单击“添加文件”按钮,我将得到0,我想在文件添加后收到李的号码

这是文件输入字段html代码:

<div class="row">
  <div class="col-md-12 mb-3">
  </div>
  <div class="col-md-12 mb-3">

    <div class="custom-file" id="tz-file">
      <label class="custom-file-label" for="tzfile">add file</label>

      <ul class="file-list">

        <li>
          <a href="./uploads/303748891/585943101000100490462no.jpg" target="_blank"> 585943101000100490462no.jpg </a>
          <span class="item-file" id="2018-303748891-21317-0" href="21317/0">remove file</span>
        </li>
      </ul>


      <input type="file" class="custom-file-input" id="tzfile" name="tzfile" required="">

    </div>
  </div>
</div>
任何帮助都会很好。

只要改变这个

$('span.item-file, input[type="file"]').bind("click", whenFileRemoved);
对此

$('span.item-file, input[type="file"]').bind("change", whenFileRemoved);
是有关
单击
更改
事件之间差异的一些信息

还要注意,如果somone将第二次选择相同的文件,则不会触发
change
事件(因为文件输入没有更改)


但在您的情况下,我相信这是预期的行为。

您是否尝试订阅
更改
事件?这听起来像是的副本,请阅读可能的副本
$('span.item-file, input[type="file"]').bind("change", whenFileRemoved);