2009-11-28 99 views
4

有一个按钮(MyButton)。 OnClick这个按钮一个modalpopup(MyPopup)出现与一个asyncfileupload ajax控制,确定按钮和取消按钮。如何清除asyncfileupload的文本框值?

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

如何清除它...!

在此先感谢。

回答

0

假设您使用Ajax Control Toolkit中的控件,则可以挂接到上传完成后在客户端调用的OnClientUploadedComplete句柄。你想打电话的模式弹出隐藏

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

建立AsyncFileUpload描述符的属性OnClientUploadComplete =“UploadComplete”和下次使用JS:

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

您可以申请任何行动/样式的“ fileInputElement“。

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> 
+1

我用同样的但仍文字不会被清除.. – 2012-09-27 10:05:20

6

没有一种建议的方法适用于我。 问题是不特定于AsyncFileUpload,但对input[type=file].

最后,我找到了一种方法是使用JavaScript为我工作:

function uploadComplete(sender, args) { 
    jQuery(sender.get_element()).find("input[type='file']")[0].form.reset(); 
} 
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"; 
    } 
} 
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"); }); 
} 
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(); 
     } 
    }