Jquery 提交按钮上的Mousedown事件与默认的单击行为不一致
我有一个局部视图,其中包含文件输入和提交按钮。 当我尝试在单击submit按钮时禁用文件输入时,HttpPostedFiles在控制器中变为null,我是Jquery新手,因此我猜这可能会干扰submit按钮的默认行为。 当我执行单击解除绑定事件时,整个过程都会撤消,文件输入会再次启用。 因此,我试图在鼠标按下提交按钮时禁用文件输入,同样的问题再次出现。 当我删除此代码时,我会得到已发布的文件Jquery 提交按钮上的Mousedown事件与默认的单击行为不一致,jquery,asp.net-mvc-4,Jquery,Asp.net Mvc 4,我有一个局部视图,其中包含文件输入和提交按钮。 当我尝试在单击submit按钮时禁用文件输入时,HttpPostedFiles在控制器中变为null,我是Jquery新手,因此我猜这可能会干扰submit按钮的默认行为。 当我执行单击解除绑定事件时,整个过程都会撤消,文件输入会再次启用。 因此,我试图在鼠标按下提交按钮时禁用文件输入,同样的问题再次出现。 当我删除此代码时,我会得到已发布的文件 $('#file1').on("click", false); $('#file2').on(
$('#file1').on("click", false);
$('#file2').on("click", false);
$('#file1').css("opacity", "0.5");
$('#file2').css("opacity", "0.5");
我的观点包括:
@{ 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");
有什么想法可以让我禁用我的文件输入(input type=“file”),而不破坏提交按钮的行为吗
$('#file1').on("click", false);
$('#file2').on("click", false);
$('#file1').css("opacity", "0.5");
$('#file2').css("opacity", "0.5");
提前感谢。我通过在单击提交按钮时禁用文件输入的单击事件来解决此问题,而不是禁用整个控件,我还将其设置为半透明,以便用户获得禁用的感觉
$('#file1').on("click", false);
$('#file2').on("click", false);
$('#file1').css("opacity", "0.5");
$('#file2').css("opacity", "0.5");
禁用整个控件会使发布的文件为空。为什么要在mousedown中执行此操作?在单击中执行此操作?提交表单时不发送已禁用的表单元素–因此,您必须在发送表单后禁用它们。您可以向我们提供您尝试过的任何代码吗?@CBroe-您能给我一个在提交后禁用控件的示例吗?有任何事件在提交后被解雇吗?@Bellash:我已经编辑了我的问题,加入了我尝试过的代码。
$('#file1').on("click", false);
$('#file2').on("click", false);
$('#file1').css("opacity", "0.5");
$('#file2').css("opacity", "0.5");