输入类型=文件阻止了我的提交按钮

时间:2019-03-19 09:19:07

标签: php html

我有一个具有图像上传功能的HTML表单,有时我需要将它隐藏在config.ini文件的输入中,所以我是这样构建的

<label class="<?php if($config[imageUpload][Status]){echo 'form-group';}else{echo 'form-group hidden';} ?>">
<input type="file" name="pictures" accept="image/*" required id="uploadImage"/>

如果状态为true,则一切正常,如果状态为false,则图像上传部分处于隐藏状态,但我无法提交(提交按钮不起作用),但是当我尝试评论文件时,提交按钮正在工作< / p>

<input type=<!--"file" --> name="pictures" accept="image/*" required id="uploadImage"/>

然后我尝试通过编写一个小的php脚本来更改type = file

<input type="<?php if($config[imageUpload][Status]){echo 'file';}else{echo '<!-- file -->';}?>" name="pictures" accept="image/*" required id="uploadImage"/>

但是这不起作用。我想知道为什么type = file阻止我提交?还有其他方法可以防止此问题吗?

2 个答案:

答案 0 :(得分:1)

您的文件输入为required

如果您使用CSS隐藏它,那么仍然需要它,用户只是看不到它(但是IIRC会在开发人员工具控制台上向Chrome警告您)。

隐藏required属性时,您需要删除它。

  

但是当我尝试评论文件时,“提交”按钮起作用了

您的注释语法不符合您的期望。

首先,您有一个输入元素,其type属性无效:

<input type=<!--"file" -->

然后剩下的作为纯文本,如果您没有使用CSS隐藏它,它将显示给用户。

name="pictures" accept="image/*" required id="uploadImage"/>

查看其呈现方式:

<input type=<!--"file" --> name="pictures" accept="image/*" required id="uploadImage"/>

这似乎可以解决您的直接问题,因为input元素不再具有required属性(因为它是纯文本的一部分。

答案 1 :(得分:1)

您只需要更改file输入上的条件:

<input type="<?php if($config[imageUpload][Status]){echo 'file';}else{echo '<!-- file -->';}?>" name="pictures" accept="image/*" <?php if($config[imageUpload][Status]){ echo 'required' ;}?> id="uploadImage"/>

它有效!!!