尝试着学习jquery,做了个小练习,完全按照书本上的。可是,发现当点击submit提交按钮后,在没有满足输入条件的情况下,也提交了。说明函数preventDefatult没有起作用,请问为什么,如何改正。<script type="text/javascript" language="javascript">
        //<!-- 1 只允许输入数字 -->
        $(document).ready(function()
        {
            $('.error').hide();
            $('.submit').click(function(event)
            {
                var data=$('.infobox').val();
                var len=data.length;
                var c=0;
                for(var i=0; i<len; i++)
                {
                    c=data.charAt(i).charCodeAt(0);
                    if(c==45 && i==0)   //允许负值;
                    {
                        continue;
                    }
                    if(c<48 || c>57)
                    {
                        $('.error').show();
                        event.preventDefatult();
                        break;
                    }
                    else
                    {
                        $('.error').hide();
                    }
                }
            });
        });
        
    </script>
<form id='signup' method="post" action="">    <div>
        <span class="label">
            Enter Age
        </span>
        <input type="text" class="infobox" />
        <span class="error">Only numericals allowed</span>
    </div>
    <input class="submit" type="submit" value="Submit" /></form>谢谢,在线等。

解决方案 »

  1.   


    if (c < 48 || c > 57) {
                            $('.error').show();
                            return false;//直接return false
                        }
                        else {
                            $('.error').hide();
                        }
      

  2.   

    你不是用的IE吧, IE只有事件冒泡,这样行,但其他浏览器都支持事件捕获,还没冒泡就发生了
    http://www.cnblogs.com/zhenn/archive/2011/02/20/1959059.htmlhttp://www.liloy.info/archives/103.html
      

  3.   

    拼写错误 event.preventDefatult();  
    应该是
    event.preventDefault();
      

  4.   

    拼写错误,这个方法在chrome和firefox里都有效。这里和事件冒泡无关。
      

  5.   

    应该return false;就可以了。