Проверка клиентом INPUT типа FILE без обратной передачи с использованием jQuery - PullRequest
5 голосов
/ 02 января 2011

Я хочу проверить на стороне клиента, что файл был выбран до отправки формы.

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@using (Html.BeginForm("Upload", "Files", FormMethod.Post, new { enctype = "multipart/form-data" }))
        { 
            <input id="File" name="File" type="file" size="80" />
            <input type="submit" name="name" value="Upload" />    
        }

В настоящее время эта форма выполняет обратные передачи для проверки.Что не так?

Ответы [ 3 ]

8 голосов
/ 21 июня 2011

@ xOn прав в том, что он не может изменить элемент файла, но вы должны иметь возможность проверить его.

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

<input type="file" 
    id="myImg" 
    name="logo" 
    data-val="true" 
    data-val-required="Oops, select the logo first!"
    accept="jpg|jpeg"
    data-val-accept="Sorry, we only accept jpegs." />
3 голосов
/ 02 января 2011

Ввод типа "file" является чувствительным к безопасности элементом управления и не допускает сценариев через DOM.Представьте себе попадание на страницу, и эта страница устанавливает значение элемента управления в известном месте для конфиденциального файла и автоматически отправляет форму.Последний раз, когда этот элемент управления мог быть написан с помощью сценариев, был в 1995 или 1996 году. Это было очень глупое время для интернет-безопасности.

0 голосов
/ 05 января 2017
<input type="file" name="path" required>

это работает для меня в html5

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...