всплывающее диалоговое окно при отправке - PullRequest
0 голосов
/ 25 июля 2011

У меня есть частичное представление в MVC2:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<dynamic>" %>
<div class="uploader">
    <form action="/media/uploader" method="post" enctype="multipart/form-data">
        <input id="File1" type="file" name="upfile" />
        <input type="submit" value="Upload" />
    </form>
</div>
enter code here

Я не знаю, как сделать следующее:

после того, как пользователь нажмет кнопку отправки, я хотел бы проверить расширение загруженного файла.Если расширение действительно, я бы опубликовал загруженный файл, но если расширение не поддерживается, я бы хотел как-то предупредить пользователя (всплывающее окно?) И прервать отправку.Я пробовал некоторые вещи с помощью jquery, но я просто недостаточно понимаю, поэтому не могу заставить его работать.

Спасибо за любой совет.

Ответы [ 2 ]

1 голос
/ 25 июля 2011

Я не парень MVC, но я знаю, что у вас есть два варианта, которые должны работать здесь только со строгой точки зрения JS / FORMS ...

Форма имеет событие - onsubmit - если у вас естьобработчик события, который возвращает false для события onsubmit, отправка не произойдет.Точно так же, если у вас есть обработчик события onclick для кнопки отправки, возвращение false отменяет щелчок, следовательно, и форму сообщения.

Вот пример, основанный на отправке формы:

<form action="/myDir/myPage.ext" method="post" onsubmit="return validForm(window.event);">
 ....
</form>

Если вы реализуете метод validForm, он может выглядеть примерно так:

    function validForm(e) {
        var fullPath = document.getElementById('File1').value;
        if (validateFileExtension(fullPath)) {
            return true;
        } else {
            alert('Invalid extension for this file!');
            return false;
        }
    }

    function validateFileExtension(fullPath) {
        var isValid = false;
        // some logic to parse and validate extension
        // if the logic passes, we set isValid to true.
        return isValid;
    }

С полностью реализованными вышеописанными методами вы можете использовать этот метод либо в событии onclick кнопки submit, либо всобытие отправки формы.В любом случае вы захотите проверить значение параметра «Ввод файла», убедиться, что расширение соответствует вашему желанию, и вернуть false, если расширение нарушает ваши бизнес-правила.Если вы вернете true, нажатие кнопки / отправка формы продолжится.Если вы вернете false, отправка формы или нажатие кнопки (в зависимости от того, к какому событию вы подключились) отменится - в любом случае, тот же результат - отправка формы не будет выполнена без того, что вы хотите в поле файла.кодирование.

B

1 голос
/ 25 июля 2011

Вы можете использовать плагин Ajax Upload , который позволяет вам сделать это.

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