как очистить значение текстового поля asyncfileupload ..?

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

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

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

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


person Community    schedule 28.11.2009    source источник


Ответы (7)


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

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

function uploadComplete(sender, args) {
    jQuery(sender.get_element()).find("input[type='file']")[0].form.reset();
}
person Community    schedule 06.11.2012

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

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

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

person Community    schedule 25.04.2010

Чтобы расширить ответ Адора выше:

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"); });
}
person Community    schedule 24.01.2013

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

 var modalPopupBehavior = $find('popupID');
 modalPopupBehavior.hide();
person Community    schedule 28.11.2009

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

<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>
person Community    schedule 15.05.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";
    }
}
person Community    schedule 23.11.2012

Это определенно очистит текстовое поле:

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();
        }
    }
person Community    schedule 11.05.2013