母版页禁用Enter提交表单

在母版页里面由于使用了form,常常需要禁用enter提交表单。因为内容页或者母版页自身有如果有type="submit"的button,当textbox聚焦时,按下enter都会触发表单的默认提交(不论是IE还是firefox),于是需要在onkeydown中监听用户的按键。实际测试,IE8中导致表单提交的不确定因素太多,点击表单的table中的td都会触发表单提交,而firefox则不会;于是在ie和ff中禁用表单提交需要不同的思路。

对于IE:

只有当事件源是TEXTAREA时才return true,允许默认动作;其他元素全部return false,禁止表单提交和任何响应。

对于firefox:

 只有当事件源是INPUT时才return false禁止表单默认动作;而其他元素则return true允许默认动作,比如textarea的多行输入。

于是完整的代码如下:

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html  xmlns ="http://www.w3.org/1999/xhtml"   >
< head >
    
< title > 禁用表单默认动作 </ title >
    
< script  language ="javascript"  type ="text/javascript" >
        document.onkeydown 
=   function (event) {
            
var  target, code, tag;
            
if  ( ! event) {
                event 
=  window.event;  // ie
                target  =  event.srcElement;
                code 
=  event.keyCode;
                
if  (code  ==   13 ) {
                    tag 
=  target.tagName;
                    
if  (tag  ==   " TEXTAREA " ) {  return   true ; }
                    
else  {  return   false ; }
                }
            }
            
else  {
                target 
=  event.target;  // w3c
                code  =  event.keyCode;
                
if  (code  ==   13 ) {
                    tag 
=  target.tagName;
                    
if  (tag  ==   " INPUT " ) {  return   false ; }
                    
else  {  return   true ; } 
                }
            }
        };
    
</ script >
</ head >
< body >
< form  id ="FORM1"   action ="default.aspx"  method ="post" >
点击BODY
< div >
点击DIV
< table >
< tr >< td > 点击TD </ td >
</ tr >
</ table >
12345
< br  />
    
< input  id ="Text1"  type ="text"  value =""   />
    
< br  />
    
< textarea  id ="TextArea1"  cols ="20"  rows ="2"   ></ textarea >
</ div >
< input  id ="Submit1"  type ="submit"  value ="submit"   />
</ form >
</ body >
</ html >


 但是我并不确定这样会不会导致其它未发现的潜在问题。如果有更好的方式还请指教!

 

转载于:https://www.cnblogs.com/1000/archive/2010/04/10/disable_submit.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值