类型错误: e.preventDefault 不是一个函数
TypeError: e.preventDefault is not a function
我是javascript和jquery的新手。我在此代码中使用了两个jquery插件。一个是Jquery表单验证器,另一个是Jquery表单ajaxSubmit。使用正常的ajax提交,代码工作正常,但现在我也不得不发布一个文件。所以我正在使用ajaxSubmit。当我运行它时,我在浏览器控制台上收到错误"类型错误:e.preventDefault 不是一个函数"。
请不要将其标记为重复的问题,因为同一主题的其他问题的答案对我不起作用。
<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>
我的问题的解决方案是更改提交处理程序,如下所示:-
submitHandler: function(form){
$(form).ajaxSubmit({
url: '/addpost',
type: 'post',
dataType: 'html',
data : $( "#addpost" ).serialize(),
success : function(data) {
location.reload();
}
});
return false
}
希望这会对某人有所帮助。
我不确定你会在提交处理程序中使用e.preventDefault()
。
删除该行并在 ajax 提交后添加return false;
。这将阻止提交表格。
你的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
中使用的e
不提供事件对象。它提供了您正在验证的表单对象!因此,您遇到的错误。请阅读文档 1,以便了解您正在处理的对象和回调。
[1 - 链接]
例如,
在 laravel 中,我就是这样使用的,它可以工作。$( "#register-form" ).validate({
submitHandler: function(form) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
}
});
var formData = new FormData(form);
$.ajax({
type:'POST',
url:'{{route('registerapi')}}',
data: formData,
cache: false,
contentType: false,
processData: false,
success:function(data) {
if ($.isEmptyObject(data.error)) {
$(':input','#register-form')
.not(':button, :submit, :reset, :hidden')
.val('')
.prop('checked', false)
.prop('selected', false);
window.location.href = "{{route('/')}}";
} else {
console.log(data.error);
}
}
});
}
});
相关文章:
- 我可以在json对象中添加一个函数吗
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 在另一个函数中使用变量this
- 在另一个函数成功结束后调用该函数
- mongoose.connect undefined不是一个函数
- 监听器必须是一个函数
- 使用JS函数来使用另一个函数的语法?node.js
- 如何取消object.prototypes javascript的一个函数
- 从Chrome扩展名中的popup.html文件在background.js文件中运行一个函数
- 嵌套到另一个函数中的Fancybox函数;不起作用
- 如何在javascript中使用不止一个函数
- jQuery-在页面加载时执行一个函数
- jquery UI draggable:UI.children不是一个函数
- jQuery Mobile Undefined不是一个函数
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- javascript函数将数据添加到屏幕,但随后被另一个函数覆盖
- JS异常:animate不是一个函数
- 如何将一个函数附加到一个不存在的元素上
- JavaScript/jQuery-添加添加和删除类与下一个函数之间的延迟