ASP.NET MVC: можно ли использовать функции MicrosoftMvcValidation.js, чтобы сделать <input type = file> обязательным? - PullRequest
2 голосов
/ 07 апреля 2010

У меня есть форма с кнопкой загрузки файла, плюс некоторые другие поля ввода и кнопка отправки. Я хочу, чтобы кнопка отправки была включена, только если файл был выбран. Возможно, я мог бы сделать это с JQuery, но я подумал, что, поскольку я уже включаю скрипты MicrosoftMvcValidation.js, там может быть что-то, что я мог бы использовать? Кто-нибудь знает?

1 Ответ

0 голосов
/ 09 декабря 2011

Я не использую 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 может помочь:

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

Вы должны убедиться, что кнопка отправки изначально отключена.

...