类型错误:e.preventDefault 不是函数

Arj*_*ith 10 javascript ajax jquery

我是 javascript 和 jquery 的新手。我在这段代码中使用了两个 jquery 插件。一个是 Jquery 表单验证器,另一个是 Jquery 表单 ajaxSubmit。通过正常的ajax提交,代码工作正常,但现在我也不得不发布一个文件。所以我使用ajaxSubmit。当我运行它时,我在浏览器控制台上收到错误“TypeError: e.preventDefault is not a function”。

请不要将此标记为重复问题,因为同一主题的其他问题的答案对我不起作用。

<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>
Run Code Online (Sandbox Code Playgroud)

我的问题的解决方案是按如下方式更改提交处理程序:-

submitHandler: function(form){
    $(form).ajaxSubmit({
            url: '/addpost',
            type: 'post',
            dataType: 'html',
            data : $( "#addpost" ).serialize(),
            success : function(data) {
                location.reload();
            }
     });
    return false
}
Run Code Online (Sandbox Code Playgroud)

希望这会帮助某人。

mtr*_*lle 10

我不确定你会e.preventDefault()在提交处理程序中使用。

删除该行并return false;在您的 ajax 提交后添加。这将阻止提交表单。