我怎么知道我的输入类型="文件"是否选择了内容

MrM*_*ins 20 html file-io jquery

我有一个简单的输入文件,<input type="file" name="file" id="file"> 但我试图在帖子后验证输入文件是否有内容.

我尝试$("#file").val()但是,控件的dom总是一样的.

mul*_*axp 32

你的意思是:在帖子之后,你的意思是:

- 发布或提交之前点击提交按钮后

- 或者你的意思是它已经提交并且内容已经到达服务器了?

如果是第一种情况,请确保将false返回到表单,以便它不提交,并且您可以验证,例如:

<form onsubmit="return false">
Run Code Online (Sandbox Code Playgroud)

或者在提交时调用验证函数后尝试向表单返回一个布尔值:

<form onsubmit="return validate()">
Run Code Online (Sandbox Code Playgroud)

然后使用Jquery验证您的数据:

function validate(){

  valid = true;

     if($("#file").val() == ''){
         // your validation error action
        valid = false;

     }

    return valid //true or false
}
Run Code Online (Sandbox Code Playgroud)

如果发现错误返回false,如果数据有效则返回true.在了解它的工作原理之后,最终所有这些都可以通过Jquery完成:

HTML:

<form id="fileform" action="nextpage.php">
Run Code Online (Sandbox Code Playgroud)

JS:

$('#fileform').submit(function(){
     valid = true;

     if($("#file").val() == ''){
        // your error validation action
        valid =  false;
    }

    return valid
});
Run Code Online (Sandbox Code Playgroud)

另外,如果您正在检查要提交的文件类型,可以查看以下帖子:jQuery - INPUT type = File,Image FileType验证选项?

如果你想要做的是对数据进行验证,然后提交,你必须代码的服务器脚本语言如PHP验证.


Moh*_*agy 5

尝试在表单提交后获取此值

$('#yourform').submit(function(){
     var val = $("#file").val();
    if(val == ''){
       return false;
    }
});
Run Code Online (Sandbox Code Playgroud)