我正在开发 CMS。当用户想要替换现有的缩略图图像时,他们可以上传替换图像,并选中复选框以证明他们确实正在替换图像。该复选框似乎是必要的,因为否则表单会提交一个空白值(由于上传字段的空白默认值,所有浏览器的安全默认值)并在没有指定替换图像的情况下清除现有图像。
问题是我一直忘记手动激活复选框并且上传的图像实际上并没有替换现有的图像,因为如果没有选中复选框,接收的 PHP 文件不会(按设计)处理上传的文件名。我怀疑用户会遇到同样的问题,我想通过减少所需步骤的数量来防止这种情况发生。一种解决方案是在单击上传字段时使用 jQuery 检查复选框。那么为什么这不起作用:
$('#image_req').click(function () {
if ($('#checkbox_req').attr('checked',true)) {
$('#checkbox_req').removeAttr('checked');
alert('Unchecked');
} else if ($('#checkbox_req').attr('checked',false)) {
$('#checkbox_req').attr('checked','checked');
alert('Checked');
}
});
有问题的 HTML 如下所示:
<input id="image_req" name="local_filename" type="file" />
<input id="checkbox_req" name="replace_image" value="yes" type="checkbox" />