一个令人头痛的问题

eingmarra 2007-10-19 09:28:37
<script language="javascript" type="text/javascript">
function test()
{
document.getElementById("File1").click();


}

</script>



<button onclick="test()">提交</button>
<form action="http://www.google.com" method="post" name="Form1" enctype="multipart/form-data">
<input type="file" name="File1" onChange="document.Form1.submit();" id="File1"/>
<input type="submit" name="submit" />
</form>

主要是想用button触发文件上传的提交。
但按下button并选择文件后,ie所做的是:请空file中那个input输入框。
如果你用submit来提交,却正常。

问高手,此问题如何解决?!
...全文
88 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
eingmarra 2007-10-19
  • 打赏
  • 举报
回复
to 魂之利刃:
你的方法可以,但我主要是想将input type="file"这个控件隐形,将button留下来。
没有button的话,用file控件是可以做到的,但如何隐藏file里的那个text的input输入框?
gs6fox 2007-10-19
  • 打赏
  • 举报
回复
没注意看,还要用button来点击,加个button就是了,调用的事件和file的onchange一样
这是如果说file框有变化就提交,如果没有变化也要提交时再点击button提交,是这个意思吧
反正不管你想怎么样,自己看着改好了

调用up(form)函数即提交,注意不同地方调用传的参数

参数是form对象
gs6fox 2007-10-19
  • 打赏
  • 举报
回复
可以提交的,怎么会提交不了
这个拿去试试

存为ftestjs.php

<?
$file=$_FILES["file"];
echo "<pre>file-><br>";
print_r($file);
echo "</pre>";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script language="javascript">
function up(form)
{
var fobj=document.getElementById("file");
if(fobj.value!="")
{
form.submit();
}
}
</script>
</head>

<body>
<form id="f1" enctype="multipart/form-data" method="post" action="ftestjs.php">

<input name="file" id="file" type="file" value="" onchange="up(this.form)">
</form>
</body>
</html>
nicholsky 2007-10-19
  • 打赏
  • 举报
回复
JS_10000说得对,不能用submit这个词作为表单中任何一个元素名称,另外为什么要用一个button去触发type=file的onclick,没必要吧。。。
candyPei 2007-10-19
  • 打赏
  • 举报
回复
同意eingmarra的说法,通过JS上传不了文件,除非submit之后,在对文件进行解析成二进制流上传,如果楼主是想要实现文件上传功能的话.用js提交最多得到上传文件名.
JK_10000 2007-10-19
  • 打赏
  • 举报
回复
试试看就知
eingmarra 2007-10-19
  • 打赏
  • 举报
回复
1. 用js触发file-input的click事件,选出的file不能提交
也就是说,不可能通过点击button按钮,选择上传的文件后,直接上传文件咯?
JK_10000 2007-10-19
  • 打赏
  • 举报
回复
1. 用js触发file-input的click事件,选出的file不能提交

2. file的onchange事件里触发form.submit是没问题的,但是submit是form的一个方法,用它当form的input的名字会导致混乱,要改一下:<input type="submit" name="submit11" / >
eingmarra 2007-10-19
  • 打赏
  • 举报
回复
document.getElementById("File1").click(); 就是等于你点击那个文件上传控件的浏览按钮啊!
lixin1020 2007-10-19
  • 打赏
  • 举报
回复
还有
document.getElementById("File1").click();
这个click(); 方法那来到啊?不明白
lixin1020 2007-10-19
  • 打赏
  • 举报
回复
为什么要onChange ....

87,923

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧