无法识别的功能 - 但为什么呢?

时间:2010-03-23 13:01:10

标签: jquery

我有一个链接到jquery文件的Ajax联系表单但由于某种原因我在Firebug中收到以下错误:

  

$(“#contactform”)。submit不是函数

以下是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

我很感激帮助让功能正常运行。感谢。

3 个答案:

答案 0 :(得分:10)

您致电:

jQuery.noConflict();

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

旁注,你有:

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

我不确定使用这些人进行托管是犹太的。另一方面,谷歌显然有一个API。我建议将其更改为:

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

答案 1 :(得分:1)

您的页面中还包含MooTools库:

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

MooTools会覆盖$变量,因此$('#contactform')会尝试查找id为'#contactform'的元素(在MooTools中,当你用id查询元素时,你没有明确地使用哈希前缀)。

这仍然按预期工作:

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

如果您需要同时运行jQuery和MooTools,请查看jQuery's no-conflict mode

答案 2 :(得分:0)

可能是因为要提交的提交按钮ID。我之前遇到过这样的问题。