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

时间:2013-04-20 21:12:36

标签: jquery html file-io

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

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

3 个答案:

答案 0 :(得分:29)

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

- 点击提交按钮但在发布或提交之前?

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

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

<form onsubmit="return false">

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

<form onsubmit="return validate()">

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

function validate(){

  valid = true;

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

     }

    return valid //true or false
}

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

HTML:

<form id="fileform" action="nextpage.php">

JS:

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

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

    return valid
});

另外,如果您要查看提交的文件类型,可以查看此帖子:jQuery - INPUT type=File , Image FileType Validation options?

如果您要做的是验证数据 AFTER 提交,那么您必须使用PHP等服务器脚本语言对验证进行编码。

答案 1 :(得分:5)

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

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

答案 2 :(得分:4)

  

尝试在帖子后验证

这将是您通过jQuery在客户端上执行的服务器端。如果您使用您正在使用的服务器端语言标记问题,我们可以为您提供所需的帮助。