0

我有一个包含文件输入和提交按钮的部分视图。当我尝试在单击提交按钮时禁用文件输入时,控制器中的 HttpPostedFiles 变为 null,我是 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);


    });
});

有什么想法可以禁用我的文件输入(输入类型=“文件”),而不会弄乱提交按钮的行为吗?

提前致谢。

4

1 回答 1

0

我通过在单击提交按钮时禁用文件输入的单击事件解决了这个问题,而不是禁用整个控件,我还使它成为半透明的,以便用户感觉它被禁用了。

$('#file1').on("click", false);
    $('#file2').on("click", false);

    $('#file1').css("opacity", "0.5");
    $('#file2').css("opacity", "0.5");

禁用整个控件会使发布的文件为空。

于 2013-11-13T05:28:27.403 回答