表单元素命名需要注意的一个地方:不要使用与form属性同名的name或id

最近做官方点充值入口的时候遇到个奇怪的问题。

直接上代码: <form id="myForm" name="myForm" method="post" action=""> 用户名: <input type="text" name="name" id="textfield" /> 密码 : <input type="password" name="password" id="textfield" /> <input type="submit" name="submit" id="submit" value=" 提交 " /> <input type="button" οnclick="doSubmit()" value="js 提交 " /> </form> <mce:script type="text/javascript"><!-- function doSubmit(){ document.myForm.submit(); } // --></mce:script> 点击按钮“ JS 提交”报错。

记得以前也遇到过这样的问题,当时的做法是一条路走不通,换一条路,比如用js将表单转换成url参数来传递,换一中方法,解决问题就好,没有去“挖”一下其中的原因,而是将问题归结于浏览器本身的bug和js的诡异性。其实轻只有去“挖”一下就能找到其中的原因,避免以后再犯。

 

看代码: alert(document.myForm.submit.value); 结果: 提交 狂汗~~~~~~~~~~~~

原因已经很明显了,document.myForm.submit获取到的是<input type="submit" name="submit" id="submit" value="提交" />这个元素,而不是from的submit函数。

由此我们需要注意了,不要给表单的元素取name="submit"或者id="submit"。否则就会出现form.submit()函数不可用!

同样道理,请注意最好不要使用method,action等与form属性同名的name或id。

 

在此感谢tenfy 协助解决问题!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值