如何清除asyncfileupload的文本框值?

时间:2009-11-28 11:03:08

标签: .net ajax modalpopupextender asyncfileupload

有一个按钮(MyButton)。 单击此按钮会出现一个modalpopup(MyPopup),其中包含一个asyncfileupload ajax控件,“确定”按钮和“取消”按钮。

asyncfileupload功能的浏览功能正常,没问题。 但是在回发之后,如果我再次单击MyButton,弹出窗口将出现在asyncfileupload控件的文本框中的上一个路径中。

如何清除它......!

提前致谢。

7 个答案:

答案 0 :(得分:5)

所提议的方法都不适合我。 问题并非针对AsyncFileUpload,而是针对input[type=file].

最后,我发现了一种适用于javascript的方式:

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

答案 1 :(得分:2)

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

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

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

答案 2 :(得分: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"); });
}

答案 3 :(得分:0)

假设您正在使用Ajax Control Toolkit中的控件,您可以挂钩OnClientUploadedComplete句柄,该句柄在上载完成后在客户端调用。你想在模态弹出窗口中调用hide

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

答案 4 :(得分: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>

答案 5 :(得分:0)

这是对月亮答案的修正。如果要在上载完成后但在执行其他一些用户操作后清除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";
    }
}

答案 6 :(得分: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();
        }
    }