2010-03-23 5 views
1

J'ai un formulaire de contact Ajax que les liens vers un fichier jquery, mais pour une raison quelconque, je reçois l'erreur suivante dans Firebug.Fonction non reconnue - mais pourquoi?

$ (« # contactform ») soumettons est pas une fonction

Voici le lien vers le fichier jquery:

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

Voici le code 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; 

}); 

}); 

Et last but not least, voici la page où il est tout censé se réunir: http://theideapeople.com.previewdns.com/contact_us.html

Je vous serais reconnaissant une certaine aide pour la fonction pour fonctionner correctement. Merci.

+0

Bien que son écrit '$ (" # contactform "). Submit ne soit pas une fonction' il fonctionnera encore – ant

Répondre

10

Vous avez appelé:

jQuery.noConflict(); 

Ainsi $ n'est plus un alias pour jQuery. C'est le problème. Supprimez cette ligne ou, si vous en avez besoin, modifiez toutes vos références de $ à jQuery (comme le fait déjà votre code).

Sur une note côté, vous avez:

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

Je ne suis pas sûr qu'il est casher d'utiliser ces gars-là pour l'hébergement. D'un autre côté, Google a explicitement une API pour cela. Je suggère de changer cela pour:

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

+1, et congrats sur 100k! –

+0

@Alex merci! :) – cletus

0

Peut-être parce que l'ID du bouton de soumission est soumis. J'ai déjà eu des problèmes comme ça à cause de ça.

1

Il y a bibliothèque MooTools également inclus dans votre page:

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

MooTools écrase variable $, donc $ ('# ContactForm) essaie de trouver l'élément avec id '#contactform'(en MooTools vous n » t utiliser explicitement le préfixe de hachage lors de l'interrogation d'éléments par id).

Cela fonctionne toujours comme prévu:

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

Si vous devez exécuter les deux jQuery et Mootools, jetez un oeil à jQuery's no-conflict mode.

Questions connexes