Ajax表单重新加载页面而不是调用ajax代码

时间:2017-06-27 22:50:28

标签: javascript php html ajax submit

我尝试运行一些php代码而不使用表单和Ajax刷新页面。但它只是刷新页面,甚至没有尝试运行ajax函数。应该有一些简单的缺失,因为这个完全相同的代码适用于其他形式,即使在同一页面上(具有不同的名称)

HTML表单:

<form class='ajax_file_remove_form'>
    <input type='hidden' name='ind' value='0'>
    <input type='hidden' name='type' value='image'>
    <input type='submit' class='ajax_file_remove_form_submit' name='remove_file' 
    value='Remove' style='height: 100%'>
</form>

Javascript文件,在$(document).ready(function () {});内:

$('.ajax_file_remove_form').off().on("submit", function (e) {
    console.log("ATTEMPT AJAX FILE REMOVE");
    e.preventDefault();
    e.stopImmediatePropagation();
    var form = $(this);
    var data = new FormData(form[0]);

    $.ajax({
            url: "../ajax_file_remove.php",
            type: "POST",
            cache: false,
            contentType: false,
            processData: false,
            data: data,
            success: function (data) { 
                console.log("AJAX FILE REMOVED"); 
                console.log(data); file_preview(data); 
            }
        });
})

控制台刚才说 导航到mySite.com/?ind=0&type=image&remove_file=Remove

而不是ATTEMPT AJAX FILE REMOVE

我尝试制作表单方法=&#39; post&#39;,但它仍然只刷新页面,而ajax函数已经说过&#34; POST&#34;

还尝试了$(&#39; .ajax_file_remove_form_submit&#39;)。off()。on(&#34;点击&#34;,功能(e) 或删除.off()或其他我不确定需要的东西。

谢谢:)

1 个答案:

答案 0 :(得分:0)

根据文件 - http://api.jquery.com/off/

.off() Remove an event handler.

.off()功能错位于

$('.ajax_file_remove_form').off().on("submit", function (e) {

我认为如果这个ajax成功,你应该放置或使用.off函数。

$.ajax({
        url: "../ajax_file_remove.php",
        type: "POST",
        cache: false,
        contentType: false,
        processData: false,
        data: data,
        success: function (data) { 
            console.log("AJAX FILE REMOVED"); 
            console.log(data); file_preview(data); 
        }
    });