AJAX 表单提交仅适用于首次提交

AJAX form submit only works on first submit

SCRIPT.JS

$(document).ready(function(){
    $('form').on('submit', function (e) {
        e.preventDefault();
        $.ajax({
            type: 'post',
            url: 'data/addtext.php',
            dataType: 'HTML',
            success: function (result) {
                $('#meo').html(result);
            }
        });
    });
});

INDEX.PHP

<div id="meo"></div>

ADDTEXT.PHP

<?php echo "HELLO WORLD" ?>

以上是我的代码。我想要发生的是每次提交表单时,都会打印出 "HELLO WORLD" 这个词,这段代码在第一次点击提交时有效,输出将是

HELLO WORLD

现在,我想再次打印出来,所以我会再次点击提交按钮,但是在第二次提交时,什么也没有打印出来。为什么?

我想要的输出是

HELLO WORLD HELLO WORLD

换句话说,我想在每次提交时打印出 "HELLO WORLD",但旧的输出将保留。所以如果我提交表单 3 次,那么输出应该是

HELLO WORLD HELLO WORLD HELLO WORLD

我知道我可以使用追加而不使用表单来完成此操作,但我想使用表单 ajax 来完成此操作而无需重新加载页面。此代码再次起作用,但仅在第一次单击提交时有效。

为什么在第二次点击提交时不起作用?

您没有将结果附加到 #meo 您每次都完全替换它。

而不是

$('#meo').html(result);

尝试将 result 附加到 #meo 中现有的 values/html。喜欢:

$('#meo').html($('#meo').text() + result);

. html() 覆盖您设置的元素内的内容。请尝试 . append()

$(document).ready(function(){
    $('form').on('submit', function (e) {
        e.preventDefault();
        $.ajax({
            type: 'post',
            url: 'data/addtext.php',
            dataType: 'HTML',
            success: function (result) {
                // This should work for you
                $('#meo').html($('#meo').html() + result);
            }
        });
    });
});