【问题标题】:How I know if my input type="file" has content selected我如何知道我的输入 type="file" 是否选择了内容
【发布时间】:2013-04-20 21:12:36
【问题描述】:

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

我尝试使用 $("#file").val(),但是控件的 dom 始终相同。

【问题讨论】:

  • 你的代码在哪里!看不到啊!
  • 不,检查您发布的before 是否存在该文件将适用于if($('#file').val())
  • 如果你真的有,那么 $("#file").val() 给你价值...

标签: jquery html file-io


【解决方案1】:

你是什么意思:发帖后,你的意思是:

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

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

如果是第一种情况,一定要给表单返回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 等服务器脚本语言编写验证代码。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      尝试验证发布后

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

      【讨论】:

        猜你喜欢
        • 2021-05-31
        • 2011-12-01
        • 1970-01-01
        • 2021-10-10
        • 2014-05-20
        • 2013-12-29
        • 2012-07-06
        • 2014-11-24
        • 1970-01-01
        相关资源
        最近更新 更多