使用HTML中form表单组件时的注意事项

一、安全

      出于安全考虑,浏览器在下面两种情形之下,会拒绝执行通过客户端脚本对form组件submit()方法的调用:

  • 直接通过客户端脚本调用INPUT type="file"组件的click()方法,选择文件并返回
  • 通过程序预先设置INPUT type="file"组件的value属性

      正常情况:

  • 上传文件必须通过用户点击INPUT type="file"组件的[浏览…]按钮,选择好待上传文件返回后,再提交表单。也就是说上传文件是在用户知情,且通过用户授权的,才可以上传。

      而在前面两种情况下,待上传的文件都是程序指定,未经过用户授权的,更有甚者是在用户不知情的情况下。如果允许提交表单的话,那么客户端的重要系统文件岂不是可以随意上传到服务器(居心叵测的服务器)上。正是因为这样浏览器才会拒绝执行上面两种情形下通过客户端脚本对form组件submit()方法的调用。

 

二、通过name属性,命名表单和表单元素

      1、通过name属性,获取表单和表单元素的引用

 

      Form对象的引用,通常可以从document.forms[]数组中获得。如document.forms[0]就是文档中的第一个表单。
而包含在Form对象中的表单元素的引用,通常可以从document.forms[].elements[]数组中获得。如document.forms[0].elements[2]就是文档中的第一个表单中的第三个表单元素。
      通过设置form以及各种表单元素的name属性,引用将变得方便得多。

      如下面的表单:

<form name="tform1" enctype="multipart/form-data" method="POST" action="upload.jsp" target="myiframe">
    <INPUT type="hidden" name="hideIdentify" value="upload" />
</form>

 

      对表单和表单元素的引用如下:

document.tform1
document.tform1.hideIdentify

 

      2、通过target属性,将表单提交结果返回到同页面中的iframe

 

      对于form的target属性,如果想将表单提交后的结果返回到同页面中的iframe中,须将target属性设置为该iframe的name属性。

<iframe name="myiframe" src="javascript:false"></iframe>

 

      3、上传表单内容

 

      表单中各表单元素的值是以 “表单元素name = 表单元素value” 的形式上传到服务器的。因此request.getParameter(name)方法中的name参数值应为 [表单元素name] 。

三、方法submit()和reset()

      通过点击表单的提交按钮,提交表单之前会触发onsubmit事件handler。而通过客户端脚本调用form对象的submit()方法,只是提交表单,但不会触发onsubmit事件handler。
      同样,通过点击表单的重置按钮,重置表单之前会触发onreset事件handler。而通过客户端脚本调用form对象的reset()方法,只是重置表单,但不会触发onreset事件handler。
      如果onsubmit事件handler返回false,会阻止表单的提交。
      同样,如果onreset事件handler返回false,会阻止表单的重置。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值