file类型input方法分析及模拟实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
file类型input方法分析及模拟实现

input type=file 这个控件是创建文件上载用的,该控件带有一个文本框和一个浏览按钮。一般我们要涉及到这方面的开发的时候 都会用到这个控件。 ? 简单实现: 像如下代码片段,我们轻松实现了这个上传文件的页面制作 form method=post action= enctype=multipart/form-data input type=file id=f2 input type=submit name=submit /form 来点颜色: 可是,现在我们的需求多了一点改变。那个显示文件路径的文本框,我想变得特殊点,有点颜色呀什么的,那么,简单,我们来给这个控件加点style。像如下修改 ????????? input type=file style=border:1px solid blue;color:red;background:green;font:bold 12px 隶书;height:18px;width:160px 怎么样,有改变了吧。 啥,不好看,那可不是,用CSS来这个控件的外观也就只能改变这么多了,定义的样式对文本框全部生效,对于按钮,只有边框样式、字体大小和外观尺寸生效。 ? 用我们的控件来模仿上传控件: 既然这么不好使,我们就自己来创建个文本框和按钮来代替它,设置文本框控件和按钮控件可是有更多变化。 style .file{border:1px solid #333333;color:#666666;background:#eeeeee;font:normal 12px Tahoma;height:18px} /style input type=text class=file id=f_fileinput type=button value=上传文件 class=file onClick=t_file.click() input name=upload type=file id=t_file onchange=f_file.value=this.value style=display:none 咋样,这回可以随心所欲的设置样式了吧,连按钮文字都可以自己设置了,呵呵! 先别高兴的太早,其实下边就是要说的问题了,咋的,咋的,弄得这么好看可是为啥提交不了?让我们来看看吧。 ? 解释模拟的控件为啥不好使: 我们把那个代码补全,另外让上传控件也显示出来就可以看的明白了 style .file{border:1px solid #333333;color:#666666;background:#eeeeee;font:normal 12px Tahoma;height:18px} /style form method=post action= enctype=multipart/form-datainput type=text class=file id=f_fileinput type=button value=上传文件 class=file onClick=t_file.click() input name=upload type=file id=t_file onchange=f_file.value=this.value input type=submit /form 运行看看,呵呵,一个奇怪的现象哦,我用我伪装的按钮选择一个文件,恩,上传控件中的文本框里也显示了文件路径,可是当我点击提交按钮的时候,嘿嘿,上传控件中的文本框里的内容变空了,提交失败。 据传说是因为微软出于安全方面的考虑,只有当鼠标真正单击在上传控件的按钮上浏览到的文件才可以上传,呵呵,想想有点道理,要不我不就可以不经过你的同意随便的上传你机子上的文件了么。所以,就有了下边的解决方法。 ? 我点的就是上传控件(从网上找来的例子,我就借花献佛了): 如果模拟的控件不行,那么我就点真正的上传控件就是了,只不过为了达到好看的目的,我把上传控件隐藏起来,随着鼠标在我那个可爱的模拟按钮上移动的时候,我就把这个控件的按钮塞到你的鼠标下边,这样子,你点击的时候其实就是真正的上传控件啦。来点代码说话: script function fclick(obj){ ?? with(obj){ ???? style.posTop=event.srcElement.offsetTop //设置透明上传框的Y坐标跟模拟按钮的Y坐标对齐 ???? style.posLeft=event.x-offsetWidth/2?? //设置透明上传框的X坐标为鼠标在X轴上的坐标加上它的宽的一半(确保点击时能点中透明上传框的按钮控件),这里只是提供一种思路,其实还可以更精确的控制它的X坐标范围 ?? } } /script style input{border:1px s

文档评论(0)

yaobanwd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档