关于SHOWMODALDIALOG和SUBMIT的问题.

supersonics 2002-08-30 06:16:29
遇到如下怪问题,百思不得其解.
一个用window.showModalDialog弹出的对话框.
上面有一个FORM和一个INPUT=FILE的输入域和其他一些BUTTON之类的东西.
问题是,
1如果我用INPUT=FILE的按钮选完文件后,FORM(SCRIPT:FORM.SUBMIT()这种方式)可以提交FORM.
2如果我用一个BUTTON来模仿INPUT=FILE,把BUTTON的ONCLICK设为INPUT=FILE的CLICK().这时候,同样的代码FORM.SUBMIT就不能提交了,报错为无法访问的方法或属性.
就是指的FORM.SUBMIT()这一行代码.以后就一直不能提交了(恢复回步骤1也不行).
我比较了步骤1和2的动态FORM的内容(用FORM.INNERHTML这种方式),完全一样.

望高手给予指点.
...全文
162 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
supersonics 2002-09-02
  • 打赏
  • 举报
回复
TO dylanOK:
不是这样的,如果我直接用INPUT=FILE的按钮选择文件,然后用FORM.SUBMIT是可以提交FORM的.
dylanOK 2002-09-02
  • 打赏
  • 举报
回复
安全性问题,网页上有file 时 不允许通过模拟点击submit button 或submit() 提交 form
supersonics 2002-09-02
  • 打赏
  • 举报
回复
我的浏览器是IE5.5加了最新的SP.
我试了版主NET_LOVER的IE6的代码,还是不行.
不知道版主有没有试一下SUBMIT,我是在SUBMIT的时候报错的.
TO REVE:
你的代码和我的差不多,同样的,不知道你有没有试过SUBMIT,在POPUP画面上.
___________________________________________________________
再次感谢大家的回复.
Reve 2002-08-30
  • 打赏
  • 举报
回复
<input type="file" name="filename" size="0" style="width:0px;display:none;"/>
<input type="button" name="add" value="Open" onclick="openFile();">
<script>
function openFile()
{
filename.click();
if(filename.value!="")
{
curFileName=filename.value;
alert(curFileName);
}
else alert("No accur");
}
</script>
上述代码在本地上可以运行,在showModalDialog()中也可以运行,但不知道还有没有其他的权限限制。
孟子E章 2002-08-30
  • 打赏
  • 举报
回复
IE6:
<b><i>文件名:</i></b>
<input type=file
name='file1'
size='15'
class='walter'
style='display: none;'>
<br>

<input type='text'
name='file2'
id='file2'>

<img src='http://lucky.myrice.com/images/meng.gif'
name='brower'
id='brower'
width='83' height='24' border='0'
alt='点击'
align='absmiddle'
onclick='document.all.file1.click();

document.all.file2.value=document.all.file1.value'>

<br><br>

With NN4 and NN6 you can (pre)set the value of an
<INPUT TYPE="file">
element, but only with trusted script:
<FORM NAME="aForm"
METHOD="post"
ENCTYPE="multipart/form-data"
ACTION="yourUploadHandler"
>
<INPUT TYPE="file" NAME="aFile">
<INPUT TYPE="submit" VALUE="send us your registry">
</FORM>
<SCRIPT>
if (window.netscape) {
netscape.security.PrivilegeManager.enablePrivilege
('UniversalFileRead');
}
document.aForm.aFile.value = 'C:\\WINDOWS\\System.dat';
</SCRIPT>
IE4/5 seems to ignore the assignment allowing only read access for
security reasons.
supersonics 2002-08-30
  • 打赏
  • 举报
回复
感谢各位的回答.
TO 版主NET_LOVER:
请注意我的代码,肯定没有安全问题,因为上传的文件是用户选择的,我没有给INPUT=FILE域赋值.
TO QIUSHUIWUHEN:
1.实际上我无法判断一个文件是否存在.
2.用户点击一下按钮就把READONLY破解了.
qiushuiwuhen 2002-08-30
  • 打赏
  • 举报
回复
用button模拟提交时会有问题

1.onsubmit中检查file的输入
2.
<div style=position:absolute;clip:rect(0,225,100,155)>
<input type=file readonly onclick=readOnly=false>
</div>
孟子E章 2002-08-30
  • 打赏
  • 举报
回复
你要是能用button模仿出来的话,那就可以自由上载了,浏览器是不会允许的。
孟子E章 2002-08-30
  • 打赏
  • 举报
回复
<input type=file>是不能用脚本进行赋值的,模仿也是无效的。否则就会有安全问题。
supersonics 2002-08-30
  • 打赏
  • 举报
回复
首先感谢两位的回复.
TO REVE:
可以肯定不是CLICK的问题,因为代码已经执行到FORM.SUBMIT()
TO ONESTAB:
关键代码如下:
<INPUT TYPE="file" name="sFileSelectName" ID="filUpload" STYLE="display:none" onChange="txtFilename.value = this.value;">
<INPUT TYPE="text" name="txtFilename" ID="txtFilename" SIZE="20" DISABLED>
<INPUT TYPE="button" name="btnBrowse" ID="btnBrowse" onClick="filUpload.click()" VALUE="FILESELECT">
---------------------------------------------------------
我的目的也很明了:就是不想让用户在文件上传域乱输一气.
方工 2002-08-30
  • 打赏
  • 举报
回复
2如果我用一个BUTTON来(模仿??? how?) INPUT=FILE,把BUTTON的ONCLICK设为INPUT=(****?哪个?if exist?)FILE的CLICK().这时候,同样的代码FORM.SUBMIT就不能提交了,报错为无法访问的方法或属性.
可否贴出你的代码?
Reve 2002-08-30
  • 打赏
  • 举报
回复
首先,注意大小写click(),其次建议用alert(formname.inputfilename.outerHTML);看看,再有不妨document.formname.inputfilename.click()。
另外,我曾经碰到的情况是,弹出的showModalDialog窗口的元素跟原来的窗口元素有冲突,导致无法定位focuse()的错误,不妨考虑一下。

87,994

社区成员

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

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