2013-10-04 4 views
0

Мой первый пост! У меня есть сайт MVC 4/JQuery, где один контроллер управляет созданием отчета PDF на основе параметров, переданных ему из представления. После создания контроллер возвращает FileContentResult(), который предлагает конечному пользователю открыть или сохранить файл.Отключить/включить кнопку отправки при возврате файла в качестве ответа

Когда конечный пользователь нажимает кнопку отправки, чтобы сгенерировать отчет, я бы хотел отключить кнопку отправки, чтобы пользователь не нажимал ее дважды. Затем после создания отчета и выбора пользователем для открытия или сохранения файла мне нужно, чтобы кнопка отправки была повторно включена, если пользователь хочет изменить параметры и повторно запустить отчет. Это выполнимо? Как JQuery узнает конечного пользователя, выбранного для открытия или сохранения файла через диалоговое окно браузера?

+0

Один из способов будет использовать Ajax и позвоню контроллер метод, вы можете установить кнопку выключался, когда функции возвращается к просмотру (успех/неудача) вернул его к включенному .. надежда это имеет смысл, если не может дать вам пример – Zaki

+0

Спасибо Сэм. Я дам это сейчас и опубликую свои результаты. –

+0

Хммм ... У меня есть проблемы с ajaxifying, потому что я использую проверенную модель представления - хотя есть только 3 параметра, которые мне нужно проверить - вывести значение, дату начала и дату окончания диапазона. Мне пришлось бы добавить некоторую дополнительную проверку/обработку проверки для части ajax на сервере, которую я уже создал с помощью проверки MVC/postback. –

ответ

0

Попробуйте это, просто отключить кнопку отправки в течение нескольких секунд и снова включить его,

<script type="text/javascript"> 
    var fewSeconds = 2; 
    $('#Btn').click(function() { 
     var btn = $(this); 
     btn.prop('disabled', true); 
     setTimeout(function() { 
      btn.prop('disabled', false); 
     }, fewSeconds * 1000); 
    }); 

</script> 
+0

спасибо за быстрый ответ! Я думал о том, чтобы идти по этому маршруту, но мое беспокойство в этом заключается в двух аспектах: 1) время генерации отчета меняется, поэтому возможно, что кнопка может быть повторно активирована до открытия/сохранения диалога и 2) если open/диалог сохранения, но теряет фокус, пользователь может снова нажать кнопку «Отправить». –

+0

Из моих исследований, возможно, не удастся выполнить то, что я пытаюсь выполнить. Возможно, есть что-то, открывающее новое окно и связанное с родительской/дочерней связью JS, чтобы контролировать видимость кнопки на главной странице, но пока я реализую решение Athiban. Спасибо! –

Смежные вопросы