Как очистить значение текстового поля asyncfileupload ..? - PullRequest
4 голосов
/ 28 ноября 2009

Есть одна кнопка (MyButton). При нажатии этой кнопки появляется модальное окно (MyPopup) с одним элементом управления ajax asyncfileupload, кнопкой «ОК» и кнопкой «Отмена».

Функциональность просмотра функциональности asyncfileupload работает нормально, нет проблем. Но после обратной передачи, если я снова нажму на MyButton, всплывающее окно с предыдущим путем появится в текстовом поле элемента управления asyncfileupload.

Как это очистить ...!

Заранее спасибо.

Ответы [ 7 ]

5 голосов
/ 07 ноября 2012

Ни один из предложенных способов не работал для меня. Проблема относится не только к AsyncFileUpload, но к input[type=file].

Наконец, я нашел способ, который работал для меня с JavaScript:

function uploadComplete(sender, args) {
    jQuery(sender.get_element()).find("input[type='file']")[0].form.reset();
}
2 голосов
/ 25 апреля 2010

Установите атрибут дескриптора AsyncFileUpload в OnClientUploadComplete = "UploadComplete" и используйте следующий JS:

function UploadComplete(sender, arg2) {
  // clear file
  var fileInputElement = sender.get_inputFile();
  fileInputElement.value = "";
}

Вы также можете применять любые действия / стили к «fileInputElement».

1 голос
/ 24 января 2013

Чтобы расширить ответ обожателя выше:

function uploadComplete(sender, args) {
    var uploadField = $(sender.get_element()).find("input[type='file']");
    uploadField[0].form.reset();
    uploadField.each(function () { $(this).css("background-color", "white"); });
}
0 голосов
/ 11 мая 2013

Это обязательно очистит текстовое поле:

var AsyncFileUpload = $get("<%=AsyncFileUpload1.ClientID%>");
    var txts = AsyncFileUpload.getElementsByTagName("input");
    for (var i = 0; i < txts.length; i++) {
        if (txts[i].type == "file") {
            txts[i].style.backgroundColor = "transparent";
            txts[i].form.reset();
        }
    }
0 голосов
/ 23 ноября 2012

Это исправление для ответа Jmoon. Это полезно, если вы хотите очистить текст AsyncFileUpload не после завершения загрузки, а после некоторых других действий пользователя.

function clearContents() {
    var AsyncFileUpload = $("#<%=AsyncFileUpload1.ClientID%>")[0];
    var txts = AsyncFileUpload.getElementsByTagName("input");
    for (var i = 0; i < txts.length; i++) {
        txts[i].value = "";
        txts[i].style.backgroundColor = "transparent";
    }
}
0 голосов
/ 15 мая 2012

это сработало для меня, если вы пытаетесь очистить его на стороне клиента.

<script type = "text/javascript">
function clearContents() {
    var AsyncFileUpload = $get("<%=AsyncFileUpload1.ClientID%>");
    var txts = AsyncFileUpload.getElementsByTagName("input");
    for (var i = 0; i < txts.length; i++) {
        if (txts[i].type == "file") {
            txts[i].value = "";
            txts[i].style.backgroundColor = "transparent";
        }
    }
}

function uploadComplete(sender) {
    clearContents();
}
</script>
0 голосов
/ 28 ноября 2009

Если вы используете элемент управления из Ajax Control Toolkit, вы можете подключить дескриптор OnClientUploadedComplete, который вызывается на стороне клиента после завершения загрузки. Вы хотите позвонить скрыть на модальное всплывающее окно

 var modalPopupBehavior = $find('popupID');
 modalPopupBehavior.hide();
...