>我有一个部分视图,其中包含文件输入和提交按钮。当我尝试在单击提交按钮时禁用文件输入时,HttpPostedFiles 在控制器中变为空,我是 Jquery 的新手,所以我想这可能会干扰提交按钮的默认行为。当我在单击事件时取消绑定时,整个事情都会撤消,文件输入再次启用。因此,我试图在鼠标按下提交按钮时禁用我的文件输入,同样的问题再次出现。当我删除此代码时,我得到了发布的文件。
我的观点包含:
@{ Html.BeginForm("ActionName", "ControllerName", FormMethod.Post,
new { id "fileUploader",enctype "multipart/form-data" });}
<div>
<table>
<tr><td><label for="file1">Filename:</label>
<input type="file" name="files" id="file1" /></td></tr>
<tr><td><label for="file2">Filename:</label>
<input type="file" name="files" id="file2" /></td></tr>
<tr><td> <input type="submit" id="btnUpload" name="Command" Value="Upload"/> </td></tr> </table>
</div>
@{ Html.EndForm();}
我的脚本文件包含:
$(document).ready(function () {
$('#btnUpload').click(function (e) {
$('#file1').attr('disabled', true);
$('#file2').attr('disabled', true);
});
});
有什么想法如何在不搞砸提交按钮行为的情况下禁用我的文件输入(输入类型 ="文件")?
提前谢谢。
我通过在单击提交按钮时禁用文件输入的单击事件来解决此问题,而不是禁用整个控件,我还使其半透明,以便用户感觉它被禁用。
$('#file1').on("click", false);
$('#file2').on("click", false);
$('#file1').css("opacity", "0.5");
$('#file2').css("opacity", "0.5");
禁用整个控件会使发布的文件为空。