6

我有很多这样的输入类型:

<input type="file" name="file_upload">

当点击提交按钮时,我想通过JS检查这些字段是否不为空(换句话说,至少有一个文件被上传)。

这是我的代码不起作用:

$('#upload-button').live('click', function () {
  var has_selected_file = $('input[type=file]').val();

  if (has_selected_file) {
    /* do something here */
  }
  else {
    alert("No file selected");
  }
});

这总是提醒没有选择文件。

4

3 回答 3

7

使用.filter() 查找具有值的输入元素,并检查长度

$('#upload-button').live('click', function () {
    var has_selected_file = $('input[type=file]').filter(function(){
        return $.trim(this.value) != ''
    }).length  > 0 ;

    if (has_selected_file) {
        /* do something here */
    }
});
于 2013-09-27T03:23:49.663 回答
1

你可以这样做:

var has_selected_file = $.trim( $('input[type=file]').val());

if (has_selected_file != "") {
    /* do something here */
}
else {
    alert("No file selected");
}
于 2013-09-27T03:26:46.837 回答
0

您是否尝试处理change而不是click

它似乎在这里工作:

jQuery - 检测文件输入中是否已选择文件

于 2013-09-27T03:31:43.553 回答