Javascript TypeError:e.preventDefault不是一个函数
我是javascript和jquery的新手。我在这段代码中使用了两个jquery插件。一个是Jquery表单验证程序,另一个是Jquery表单ajaxSubmit。对于普通的ajax提交,代码运行良好,但现在我也不得不发布一个文件。所以我使用ajaxSubmit。当我运行这个程序时,我在浏览器控制台上得到一个错误“TypeError:e.preventDefault不是一个函数” 请不要将此标记为重复问题,因为同一主题的其他问题的答案对我不适用Javascript TypeError:e.preventDefault不是一个函数,javascript,jquery,ajax,Javascript,Jquery,Ajax,我是javascript和jquery的新手。我在这段代码中使用了两个jquery插件。一个是Jquery表单验证程序,另一个是Jquery表单ajaxSubmit。对于普通的ajax提交,代码运行良好,但现在我也不得不发布一个文件。所以我使用ajaxSubmit。当我运行这个程序时,我在浏览器控制台上得到一个错误“TypeError:e.preventDefault不是一个函数” 请不要将此标记为重复问题,因为同一主题的其他问题的答案对我不适用 <script type="text/ja
<script type="text/javascript">
$(document).ready(function() {
$("#addpost").validate({
rules: {
subject: "required",
comment: "required"
},
messages: {
subject: "Please enter a subject",
comment: "Please enter some details",
},
submitHandler: function(e){
e.preventDefault();
$.ajaxSubmit({
url: '/addpost',
type: 'post',
dataType: 'html',
data : $( "#addpost" ).serialize(),
success : function(data) {
location.reload();
}
});
}
});
});
</script>
希望这会对某人有所帮助。我不确定您是否会在提交处理程序中使用
e.preventDefault()
删除该行并添加returnfalse代码>在ajax提交之后。
这将阻止表单的提交。您在提交程序中使用的e
不提供事件对象。它提供您正在验证的表单对象!因此,您将得到错误。请阅读文档,以便了解您正在处理的对象和回调
您的e
不是事件,而是表单元素。按如下方式更改代码:
submitHandler: function(form,e){ // place your element on second parameter
e.preventDefault();
$.ajaxSubmit({
url: '/addpost',
type: 'post',
dataType: 'html',
data : $( "#addpost" ).serialize(),
success : function(data) {
location.reload();
}
});
}
阅读submitHandler
的文档:它告诉您它收到了哪些参数。感谢您的回答。但现在错误出现在ajaxSubmit“TypeError:$.ajaxSubmit不是函数”上。我们可以在另一个插件中使用一个插件吗?这是正确的方法吗?检查“网络”选项卡,查看获取jqeury文件时是否有错误。@DimalChandrasiri我没有收到任何错误。问题实际上是语法错误。
submitHandler: function(form,e){ // place your element on second parameter
e.preventDefault();
$.ajaxSubmit({
url: '/addpost',
type: 'post',
dataType: 'html',
data : $( "#addpost" ).serialize(),
success : function(data) {
location.reload();
}
});
}