注册 登录
编程论坛 ASP技术论坛

[求助]能否触发提交form表单

thbwn 发布于 2008-06-09 14:28, 2488 次点击
比如:通过input=file获得文件后,立即提交form,而不需要再点击input=submit提交!

[[it] 本帖最后由 thbwn 于 2008-6-9 14:29 编辑 [/it]]
25 回复
#2
multiple19022008-06-09 14:29
<input type="file" .... onchange="myform.submit()" />

我没试验
#3
thbwn2008-06-09 14:33
好像不行
#4
multiple19022008-06-09 14:48
再不行用setTimeout每隔1s检查file表单域有没有值如果有就form.submit
#5
hmhz2008-06-09 14:53
<form name="myform">
<input type="file" onBlur="setTimeout('document.myform.submit()',2000);" />
</form>
#6
thbwn2008-06-09 15:00
怎样判断文本域非空时再执行呢
#7
thbwn2008-06-09 15:03
楼上版主的方法不错,但就是这个时间不好控制,设短了吧,还没将文件选中,设长了吧,选完文件还得等着。最好加判断,判断表单域不是空时立即提交。
#8
thbwn2008-06-09 15:05
multiple1902版主同志,你说的原理是可行,有代码吗,怎么写
#9
multiple19022008-06-09 15:12
setInterval('if(document.getElementById("myfile").value.length!=0){document.getElementById("myform").submit}',1000)

仍然没试验……
#10
thbwn2008-06-09 15:16
form input都得设id?
#11
thbwn2008-06-09 15:18
没有动静
#12
hmhz2008-06-09 15:20
上传文本框没有 value 属性的,这个方法不用试也是失败的
#13
thbwn2008-06-09 15:21
啊,有没有其他更好的方法
#14
hmhz2008-06-09 15:28
经过测试,使用下面的方法完全没问题
<form name="myform">
<input type="file" onchange="setTimeout('document.myform.submit()',1000);" />
</form>
#15
thbwn2008-06-09 15:37
hmhz,谢谢,此问题解决!我还想问个相关的问题
#16
thbwn2008-06-09 15:39
<FORM action="?action=upload" method="post" encType="multipart/form-data" name="form1">
<table width="95%" border="0" cellpadding="0" cellspacing="0">
    <tr>
      <td align="center"><div align="left">
        <input type="file" name="file1" size=30 class="thbwn" id="f1" style="display:none;"><input type="hidden" name="filename"><a href="javascript:;" onclick="f1.click();">附件</a><input type="submit" />
           </div></td>
    </tr>
         </table>
<%
</FORM>

点击“附件”获取的上传文件,但提交是空值,请问怎么回事?
让input=file显示时能看到获到的文件,但点击提交,input=file一下子空了,提交不成功!
#17
thbwn2008-06-09 15:40
补充:

<input type="file" name="file1" size=30 class="thbwn">能获取文件正常上传成功。
但想将input=file隐藏,通过点击"附件“选取文件不成功。
#18
thbwn2008-06-09 15:41
最终:能否将将才解决的功能与这个结合起来。
#19
multiple19022008-06-09 15:54
[bo][un]hmhz[/un] 在 2008-6-9 15:20 的发言:[/bo]

上传文本框没有 value 属性的,这个方法不用试也是失败的

貌似有……

Sub UpArticle
    Response.Write "<form action='Admin_Upfile.asp?Action=UpArticleSubmit' method='POST' enctype='multipart/form-data'>" & vbCrLf
    Response.Write "上传文件:<input type='file' name='ClassImg' id='ClassImg' /><input type=submit name='submit' value='提交'>" & vbCrLf
    %>
    &nbsp;&nbsp;<input type="button" onclick="insertLink()" value="添加为连接" /><input type="button" onclick="insertDown()" value="添加下载图标" />
    <%
    Response.Write "</form>" & vbCrLf
End Sub


function insertLink(){
      var oEditor = parent.FCKeditorAPI.GetInstance('Content')
      oEditor.InsertHtml('<a href="'+document.getElementById('ClassImg').value+'"><img border="0" src="/NsNews/Images/link.png" alt="" style="margin:0px 2px -4px 0px" />单击这里访问</a>')
}

在文件框里打入网址,确实能在fck里增加连接
#20
hmhz2008-06-09 16:13
<form action="?action=upload" method="post" enctype="multipart/form-data" name="form1">
<table width="95%" border="0" cellpadding="0" cellspacing="0">
<tr>
    <td align="center">
    <div align="left">
        <input type="file" name="file1" id="f1" style="display:none;" onchange="setTimeout('document.form1.submit()',1000);"><input type="hidden" name="filename"><a href="javascript:;" onclick="f1.click();">附件</a>
    </div>
    </td>
</tr>
</table>
</form>
#21
hmhz2008-06-09 16:18
你手工输入的就给file增加了一个value属性,而你点浏览传进去的值并不在value属性里,到底在哪我也不知道,没有具体研究过上传

你手工给它个默认值看看能不能显示出来就知道了
<input type='file' name='ClassImg' id='ClassImg' value='000000000000' />
#22
thbwn2008-06-09 16:24
半天没动静,好像input=file提交时被清空了
#23
thbwn2008-06-09 16:29
去掉style="display:none;" ,让input显示出来,点"附件“获取文件,input框短暂显示,然后没了,被清空了,上传失败!
#24
hmhz2008-06-09 16:30
f1.click() 浏览的地址很有可能在 value里面,而表单提交方式是multipart/form-data来提交的,所以 上传文本框的file会自动变为text,好象是对应的,必须使用浏览按扭提交才符合multipart/form-data的提交方式
#25
huanglun12008-06-09 17:01
强,看到底,没明白多少耶,呵呵
#26
multiple19022008-06-09 19:42
抱歉,我刚才测试了一下,用浏览选择的文件路径确实用value得到了
1