如何在jQuery中检查输入文件是否为空

时间:2014-09-11 17:43:55

标签: javascript jquery html

JS的全新。
我在尝试使用jQuery / JavaScript提交表单时检查文件输入元素是否为空。 我已经经历了一系列解决方案,没有什么对我有用。我试图避免/c/fakepath(除非没有其他选择)

<input type="file" name="videoFile" id="videoUploadFile" />

这不起作用:

var vidFile = $("#videoUploadFile").value;

我可以获取文件名的唯一方法是使用以下内容:

var vidFile = document.getElementById("videoUploadFile").files[0].name;

如果没有可用文件,代码会抛出错误:

  

无法读取未定义的属性名称

这是有道理的,因为没有设置数组。但是我无法弄清楚如何使用它进行任何错误处理。

如何正确抓取文件输入元素videoUploadFile,检查它是否为空,如果它是空的则会抛出错误消息?

6 个答案:

答案 0 :(得分:128)

只需检查files属性的长度,该属性是输入元素中包含的FileList对象

if( document.getElementById("videoUploadFile").files.length == 0 ){
    console.log("no files selected");
}

答案 1 :(得分:104)

以下是它的jQuery版本:

if ($('#videoUploadFile').get(0).files.length === 0) {
    console.log("No files selected.");
}

答案 2 :(得分:11)

检查输入文件是否为空 通过使用文件长度属性,应指定index,如下所示:

var vidFileLength = $("#videoUploadFile")[0].files.length;
if(vidFileLength === 0){
    alert("No file selected.");
}

答案 3 :(得分:4)

我知道我参加聚会很晚,但是我想我将为此使用的内容添加了-这就是使用not运算符和JQuery像这样简单地检查文件上传输入是否不包含真实值所以:

if (!$('#videoUploadFile').val()) {
  alert('Please Upload File');
}

请注意,如果这是在表单中,则可能还需要使用以下处理程序将其包装起来,以防止表单提交:

$(document).on("click", ":submit", function (e) {

  if (!$('#videoUploadFile').val()) {
  e.preventDefault();
  alert('Please Upload File');
  }

}

答案 4 :(得分:2)

# Example using mutate
my_df <- my_df %>% 
  mutate(
    C = case_when(is.na(C)  & !is.na(D) ~ D,
                  !is.na(C) & is.na(D)  ~ C,
                  # The lines below may be a bit redundant for my purpose, since the dataframes either have the C or D variable.
                  !is.na(C) & !is.na(D) ~ C, # Better would be to return that variable has overlapping information
                  is.na(C)  & is.na(D)  ~ NA
                 )
         ) %>%
        select(-D)
my_df
# A tibble: 6 x 3
      A B     C    
  <dbl> <chr> <lgl>
1     1 X     TRUE 
2     2 Y     FALSE
3     3 Z     FALSE
4     3 U     TRUE 
5     4 V     TRUE 
6     5 W     FALSE

答案 5 :(得分:1)

问题:如何检查文件是否为空?

Ans:我已经使用这个Jquery代码解决了这个问题

//If your file Is Empty :     
      if (jQuery('#videoUploadFile').val() == '') {
                       $('#message').html("Please Attach File");
                   }else {
                            alert('not work');
                   }

    
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="file" id="videoUploadFile">
<br>
<br>
<div id="message"></div>