奇怪的是,我把<!-- <input   type="text"   style="display:none;"   /> --> 注释去掉。在Firefox中也正常了

解决方案 »

  1.   

                            document.getElementById('Text1').onkeydown   =   function(e) 
                            { 
                                    //   
                                    if(typeof(event)   ==   'object')   {e   =   event;} 
                                    
                                    //   
                                    if(e.keyCode   ==   13)   //   Enter键 
                                    { 
                                            document.getElementById('Button1').onclick(); 
                                            return   false; 
                                    } 
                                    return   true; 
                            }; 
    这段代码就是为了点回车也可以提交才写的..
      

  2.   

    你在firefox和IE下运行,就可以看出区别了!firefox页面刷新了..
      

  3.   

    return false用于阻止事件冒泡从而阻止默认事件的触发,这个你知道对吧?然而这一招仅对IE有效。
      

  4.   

    To:cat_hsfz在Firefox中,return false;也可以阻止事件冒泡吧?只要没有alert,好象还是可以的另外把 <!-- <input type="text" style="display:none;" /> -->注释去掉,Firefox里也正常了.大伙有拷贝下来运行试试吗?我用文字描述不是很清楚!!!抱歉!!!
      

  5.   

    <form id="form1" action="test.htm" onsubmit="return false;">我以前遇到f下的问题,都是这个原因,必须把action和onsubmit补齐了,否则即使是ajax都会
    造成表单提交的,真的很奇怪的!
      

  6.   

    1、在FF下,当form中只有一个text输入域时,该域的回车会触发onsubmit事件。这一点你可以写一个简单的HTML测试一下。这也是为什么你在form中增加一个text输入域(即使是隐藏域)后,就没有发生submit事件的原因。你也可以把增加的这个输入域的Type改为“button"试试,submit照常发生。
    2、正是因为onsubmit事件是由回车引发的,所以你点击button1并没有引发onsubmit事件。
    3、FF的这种设计并非完全带来麻烦。事实上当你知道这个特性后,它会给我们带来许多方便。^_^
    4、知道这个原因后,解决方案其实很多。楼上的将onsubmit = "return false;"算一种(如果你准备Ajax提交的话),你代码中的增加一个隐藏input域也是一种。