我有一个链接到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
我很感激帮助让功能正常运行。感谢。
答案 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。我之前遇到过这样的问题。