我有一个具有图像上传功能的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阻止我提交?还有其他方法可以防止此问题吗?
答案 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"/>
它有效!!!