为什么我的jquery代码没有被调用?

时间:2011-11-23 19:43:38

标签: jquery

这是我的代码:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <script src="Scripts/jquery-1.7.js" type="text/javascript"></script>
        <script>
                    $('target').submit(function() 
                    {
                    alert('Handler for .submit() called.');
                   });
        </script>

    </head>
    <body>
        <form id="target" method="post">
            <input type="text" value="Hello there" />
            <input type="submit" value="Go" />
        </form>
        <div id="other">
        Trigger the handler
        </div>
    </body>
</html>

7 个答案:

答案 0 :(得分:3)

始终使用文档就绪函数包装bind方法:

   <script>
   $(function () {

                $('#target').submit(function() 
                {
                alert('Handler for .submit() called.');
               });
    });
    </script>

编辑这是必要的原因是因为如果你在文档准备好之前尝试绑定它,那么#target对象很可能还没有存在。当然,您可以将其更改为$(“#target”)。live(“submit”,function(){....但是,这对于如何解决此问题并不是一个好主意。使用ready处理程序作为我已经在上面展示了。

答案 1 :(得分:1)

主要问题是你的选择器正在选择一个目标标签,而不是id为target的元素,所以改变这个:

 $('target').submit(function() 

 $('#target').submit(function() 

你的第二个问题是你应该把你的jQuery代码包装在DOM ready事件中。

答案 2 :(得分:0)

你错过了一个'#'标志。

<script>
                    $('#target').submit(function() 
                    {
                    alert('Handler for .submit() called.');
                   });
        </script>

答案 3 :(得分:0)

您需要选择器的哈希(#)标记。

$('#target').submit(function() 
...

请参阅http://api.jquery.com/category/selectors/

答案 4 :(得分:0)

因为执行此代码时还没有目标。使用.ready()。它也应该是$('#target'),因为id selectors应该以#。为前缀。

$(function(){
    $('#target').submit(function() 
    {
        alert('Handler for .submit() called.');
    });
}

答案 5 :(得分:0)

选择器中缺少

#

$('#target').submit(function(){ });

答案 6 :(得分:0)

以这种方式使用:

 <script>
           $(document).ready(function () {

               $('#target').submit(function () {
                   alert('Handler for .submit() called.');
               });
           });
    </script>