Javascript 不起作用(textbox.value = fileupload.value)

Javascript not working (textbox.value = fileupload.value)

本文关键字:value fileupload textbox 不起作用 Javascript      更新时间:2023-09-26

代码的想法是制作一个单独的文本框和按钮,这样我就可以为每个文本框和按钮创建类,并使它们像文件上传一样工作。

但是javascript运行两次,文件上传值被删除。

<style type="text/css">
div.fileinputs
{
    position: relative;
}
div.fakefile
{
    position: absolute;
    top: 0px;
    left: 0px;
    z-index: 1;
}
input.file
{
   visibility:hidden;
}
</style>
<script type="text/javascript" language="javascript">
    function uploadFileChange() {
            alert("start");
            document.getElementById('FileName').value = document.getElementById("FileUpload1").value;
            alert("end");
    }
</script>
<div class="fileinputs" style="width: 50%;">
    <!-- Upload file invisivel-->
    <asp:FileUpload ID="FileUpload1" ClientIDMode="Static" class="file" runat="server" 
         onpropertychange="uploadFileChange();"  />
    <!-- button e textbox falsas para poder dar syles ao button-->
    <div class="fakefile">
        <asp:TextBox ID="FileName" CssClass="textbox" ClientIDMode="Static" runat="server" Width="31%" ></asp:TextBox>
        <asp:Button ID="FileChooserButton1" CssClass="btnSubmit" runat="server" Text="Procurar..."
            ForeColor="White" onClick="document.getElementeByID('FileUpload1').click()" />
    </div>
</div>

怎么了???提前致谢

对代码稍作更正,

<asp:Button ID="FileChooserButton1" CssClass="btnSubmit" runat="server" Text="Procurar..."             ForeColor="White" onClientClick="document.getElementeByID('FileUpload1').click();return false;" />

将返回 false 写入 ClickEvent 不会回发,您丢失 FileUplaod 值的原因是页面正在获得回发。

或者你可以试试这个,

<asp:Button ID="FileChooserButton1" CssClass="btnSubmit" runat="server" Text="Procurar..." ForeColor="White" onClientClick="CallClick();return false;" />
function CallClick(){
document.getElementeByID('FileUpload1').click();
return false;
}