2010-03-23 55 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