如何清除之前的 json 回复?

How to clear previous json response?

我需要清除之前的回复。它只是堆积起来。

对不起,我对ajax了解甚少。 我感谢所有回复。谢谢。

<script type="text/javascript">
    $(document).ready(function(){
        $("#form").submit(function(){
            var selector = $(this);
            var form = selector.serializeArray();
            $("#submit").prop('disabled', true);
            $.ajax({
                url:'{{ url('dashboard/add') }}',
                type: 'post',
                data: form,
                dataType:"json",
                success: function(data){
                    if(!data.success)
                    {
                        $.each(data.errors, function(r, errors){
                            var node = document.createElement("li");
                            var textnode = document.createTextNode(errors);
                            node.appendChild(textnode);
                            document.getElementById("list").appendChild(node);

                        });

                        $('#myModal').modal('hide');
                        $('#myModal8').modal('show');
                    }
                    else
                    {
                        $('#myModal').modal('hide');
                        $('#myModal7').modal('show');
                    }
                }
            });
            return false;
        });
    });
</script>

响应堆积如山,因为您一直在添加它们而从未清除它们。如果您想在每次启动新的 submit 时清除错误列表,

// ...
$("#form").submit(function(){
  document.getElementById("list").innerHTML = "";
  // ...

您总是追加到同一个 HTML 列表。 因为你已经有 jquery 你可以使用 empty() 在追加之前清除列表。

$('#list').empty();

请注意,这将删除列表中的所有内容,如果您需要删除特定元素,您应该针对它们的 ID 或 class。

您可以使用 hasChildNodes() 检查列表中是否存在任何子节点,如果是 true,您可以使用 replaceChild() 而不是 appendChild()

或者您可以在添加新内容之前使用 innerHTML 清空内容。