25

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

我尝试过,$("#file").val()但是控件的域总是相同的。

4

3 回答 3

39

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

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

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

如果是第一种情况,请确保向表单返回 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?

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

于 2013-04-20T21:32:04.210 回答
5

尝试像这样提交表单后获取值

$('#yourform').submit(function(){
     var val = $("#file").val();
    if(val == ''){
       return false;
    }
});
于 2013-04-20T21:20:58.423 回答
4

尝试在发布后进行验证

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

于 2013-04-20T21:15:12.750 回答