【问题标题】:ASP.NET MVC: Can I use the MicrosoftMvcValidation.js functions to make an <input type=file> mandatory?ASP.NET MVC:我可以使用 MicrosoftMvcValidation.js 函数来强制 <input type=file> 吗?
【发布时间】:2011-02-05 00:42:08
【问题描述】:

我有一个带有文件上传按钮的表单以及一些其他输入字段和一个提交按钮。我希望仅在选择文件时才启用提交按钮。我可能可以使用 JQuery 来做到这一点,但我认为既然我已经包含了 MicrosoftMvcValidation.js 脚本,那么其中可能有一些我可以使用的东西吗?有人知道吗?

【问题讨论】:

    标签: asp.net-mvc ajax validation asp.net-ajax


    【解决方案1】:

    我不使用 ASP.NET MVC,所以我的回答可能不合适。

    在 WebForms 中,验证器可以很好地处理文件输入。所以当我想在用户没有提供文件的情况下阻止表单提交时,我只是放了一个RequiredFieldValidator。

    例如,强制用户提交 GIF/JPG/PNG 类型的图像:

    <asp:FileUpload id="FileInput" runat="server" />
    <asp:RequiredFieldValidator ControlToValidate="FileInput" runat="server" />
    <asp:RegularExpressionValidator ControlToValidate="FileInput" ValidationExpression="^.*\.(gif|GIF|jpe?g|JPE?G|png|PNG)$" runat="server" />
    

    这不能解决您关于在未选择文件时禁用提交按钮的问题。这个 jQuery sn-p 可以解决问题:

    $(function()
    {
        $("input:file").change(function()
        {
            var fileName=$.trim($(this).val());
            $("input:submit").prop("disabled")=(fileName.length==0);
        });
    });
    

    您必须确保提交按钮最初是禁用的。

    【讨论】:

      猜你喜欢
      • 2011-09-01
      • 2011-02-19
      • 2013-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-18
      • 2011-05-16
      相关资源
      最近更新 更多