2010-03-23 56 views
1

我有一个链接到jQuery的文件,但由于某种原因,我得到以下错误在Firebug一个Ajax的联系表格:无法识别的功能 - 但为什么?

$(“#联系形式”)提交不是一个函数

这里是链接到jQuery的文件:

<script type="text/javascript" src="scripts/jquery.jigowatt.js"></script> 

这里是jQuery代码:

jQuery(document).ready(function(){ 

$('#contactform').submit(function(){ 

    var action = $(this).attr('action'); 

    $("#message").slideUp(750,function() { 
    $('#message').hide(); 

    $('#submit') 
     .after('<img src="assets/ajax-loader.gif" class="loader" />') 
     .attr('disabled','disabled'); 

    $.post(action, { 
     name: $('#name').val(), 
     company: $('#company').val(), 
     email: $('#email').val(), 
     phone: $('#phone').val(), 
     subject: $('#purpose').val(), 
     comments: $('#comments').val(), 
     verify: $('#verify').val() 
    }, 
     function(data){ 
      document.getElementById('message').innerHTML = data; 
      $('#message').slideDown('slow'); 
      $('#contactform img.loader').fadeOut('slow',function() {$(this).remove()}); 
      $('#contactform #submit').attr('disabled',''); 
      if(data.match('success') != null) $('#contactform').slideUp('slow'); 

     } 
    ); 

    }); 

    return false; 

}); 

}); 

最后但并非最不重要的,这里是所有应该走到一起的页面:http://theideapeople.com.previewdns.com/contact_us.html

我希望有一些帮助让功能正常工作。谢谢。

+0

虽然它写的'$(“#contactform”)。submit不是一个函数,它仍然会工作 – ant 2010-03-23 13:03:46

回答

10

你叫:

jQuery.noConflict(); 

因此$不再是jQuery的别名。那就是问题所在。删除该行或者,如果您需要,请将您的所有引用从$更改为jQuery(因为您的一些代码已经这样做)。

在一个侧面说明,你有:

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> 

我不知道这是犹太使用那些家伙主办。另一方面,Google明确地为它提供了一个API。我建议将其更改为:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
+0

+1,恭喜100k! – 2010-03-23 13:14:28

+0

@亚历山大谢谢! :) – cletus 2010-03-23 13:24:10

0

可能是因为提交按钮ID正在提交。因为这个,我之前有过这样的问题。

1

有MooTools的图书馆也包含在你页面:

<script type="text/javascript" src="http://support.previewdns.com/mt.js"></script> 

MooTools的覆盖$变量,因此$( '#联系形式')试图找到ID为 '#contactform' 元素(MooTools的你不”当通过id查询元素时,显式地使用哈希前缀)。

这仍然按预期工作:

jQuery('#contactform').submit(...); 

如果你需要同时运行jQuery和MooTools的,看看jQuery's no-conflict mode