4

有一个按钮(MyButton)。单击此按钮会出现一个 modalpopup(MyPopup),其中包含一个 asyncfileupload ajax 控件、Ok 按钮和 Cancel 按钮。

asyncfileupload 功能的浏览功能工作正常,没问题。但是在回发之后,如果我再次单击 MyButton,则会在 asyncfileupload 控件的文本框中显示带有先前路径的弹出窗口。

如何清除它...!

提前致谢。

4

7 回答 7

5

None of the proposed ways worked for me. The problem is not specific to AsyncFileUpload, but to the input[type=file].

Finally, I found a way that worked for me with javascript:

function uploadComplete(sender, args) {
    jQuery(sender.get_element()).find("input[type='file']")[0].form.reset();
}
于 2012-11-06T21:35:00.730 回答
2

将 AsyncFileUpload 描述符的属性设置为 OnClientUploadComplete="UploadComplete" 并使用下一个 JS:

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

您也可以将任何操作/样式应用于“fileInputElement”。

于 2010-04-25T18:30:04.543 回答
1

要扩展上面的 ador 答案:

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"); });
}
于 2013-01-24T00:42:20.830 回答
0

假设您使用的是 Ajax Control Toolkit 中的控件,您可以挂接到 OnClientUploadedComplete 句柄,一旦上传完成,该句柄就会在客户端调用。您想在模式弹出窗口上调用 hide

 var modalPopupBehavior = $find('popupID');
 modalPopupBehavior.hide();
于 2009-11-28T19:33:28.307 回答
0

这肯定会清除文本框:

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();
        }
    }
于 2013-05-11T04:56:34.713 回答
0

如果您尝试清除客户端,这对我有用。

<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>
于 2012-05-15T15:42:45.113 回答
0

这是对 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";
    }
}
于 2012-11-23T12:12:39.463 回答