2009-11-01 145 views
2

我想采取我的表格,并以某种方式调整它以提交表单时,用户选择一个文件。我怎样才能做到这一点?提交文件上传/表单上的文件选择

<div id=uploadform style="width:500px;margin-left:auto;margin-right:auto;"> 
    <form enctype="multipart/form-data" action='' method='POST'> 
     <input type="file" name="imagefile" class=browse> 
     <input type='submit' value='Upload' class=uploadsubmit onClick="if($('#loading').css('display') == 'none') { $('#loading').show('fast'); $(this).hide('fast'); };"> 
     <input type='hidden' value='1' name='submitted' /> 
    </form> 
</div> 
<div id=loading style="display:none;"> 
    <img src=uploading.gif> 
</div> 

由于按钮将缺席(理想),我怎么还显示我的图像加载层提交后?为了说明,我希望提交按钮本身消失,当用户选择一个文件时,提交表单并显示#loading图层。

回答

4

你可以陷阱提交事件:

$("#uploadform form").submit(function() 
{ 
    $("#uploadform").hide(); 
    $("#loading").show(); 
}); 
+0

在哪里可以实现这个功能?内联文件输入?或页面顶部?要么?? – mrpatg 2009-11-01 15:29:13

+0

可能要调整,以便第3行只隐藏按钮。 $( '#uploadsubmit')隐藏()。 – 2009-11-01 15:30:15

+0

很可能你会把它放在包含$(document).ready(function(){})的脚本标签内的文档头部; – 2009-11-01 15:34:34

1

您可以使用文件元素onChange事件处理程序,但已知有浏览器不兼容的问题,也许jQuery的可以处理你虽然。当然,在事件处理程序中,您将提交表单并显示您的加载对话框。如果你想避免页面的刷新,那么表单将不得不在IFrame中提交,否则你的加载对话框将不会显示很长的时间... :)