如下代码:
我在input=“text”中触发 type=“button” 的click事件  竟然会连带触发form的submit。
坑爹了!不解了!!求解释!!
<!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>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title><script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>    <script type="text/javascript">        function test() {
            alert('尼玛坑爹啊!');
        }
        
        $(
        function() {
            $("#input").keydown(
                function(e) {
                    if (e.keyCode == 13) {
                        $("#button").trigger("click");
                    }
                });
        });
    </script></head>
<body>
    <form>
    <input type="text" id="input" /><input type="button" id="button" value="GO" onclick="test();" />
    </form>
</body>
</html>

解决方案 »

  1.   

    我就说嘛。。你外面有个form...
      

  2.   

    <form>标签中的<input type="text" />的回车本来就被设置成去提交表单,不是click的事件,想不触发WEB请求就先阻止默认事件。
      

  3.   


    貌似不是按钮个数的原因,是文本框个数的原因
    form内只有一个文本框的时候  在文本框内回车 就会触发form。
      

  4.   

    form中有多个input 就不会了
      

  5.   


     $(
            function() {
                $("#input").keydown(
                    function(e) {
                        if (e.keyCode == 13) {
                            $("#button").trigger("click");
                            if (e && e.preventDefault)
                                e.preventDefault();
                            else
                                window.event.returnValue = false;
                            return false;
                        }
                    });
            });
    这个阻止默认事件在火狐不起作用?  版本10.0.2(最新版本) 
      

  6.   

    event.returnValue 火狐不支持这个。。
      

  7.   

    很简单就能解决。添加一个无意义的<input type="hidden" />它就不能发了。
      

  8.   


    event.returnValue 这句是针对IE的啊?
    e.preventDefault();这句火狐不支持?火狐也不搞W3C了?
      

  9.   

    在textbox 里不许回车提交?        function() {
                $("#input").keydown(
                    function(e) {
                        if (e.keyCode == 13) {
                            return false;
                        }
                    });
            });
      

  10.   

    学了一招,form中只有一个text的时候会自动触发form
      

  11.   

    你是想要不但不许发,还要触发test()?
    .....
    <script type="text/javascript">
    function test() {
    alert('尼玛坑爹啊!');
    }$(
    function() {
    $("#input").keydown(
    function(e) {
    if (e.keyCode == 13) {
    $("#button").trigger("click");
    }
    });
    });
    </script>
    </head><body>
    添加onsubmit return false;
    <form onsubmit="return false;">
    <input type="text" id="input" /><input type="button" id="button" value="GO" onclick="test();" />
    </form>
      

  12.   

    http://hi.baidu.com/suofang/blog/item/cad7b88f5108eff5f01f36e5.html
      

  13.   


    这样的话   正常的submit 也被阻止了。不优雅!
      

  14.   

    把id="button"去掉,或者换其他id
      

  15.   


    form.submit(); ---用js 代码发送。一样有效。
      

  16.   

    其实最简单的办法就是添加个<input type="hidden" /> 代码不必作任何修改。
      

  17.   


    hidden 没用  必须是这个    <input type="text" id="Text1" style="display: none" />