javascript - jQuery:如果存在错误,请删除旧的

标签 javascript jquery html css ajax

我对我的联系表单使用一个小的 Ajax 请求来显示我的验证。

$('#contact-form').on('submit', function (event) {
    event.preventDefault();

    $.ajax({
        url: 'send-mail',
        type: 'POST',
        data: $('#contact-form').serialize(),
        success: function (data) {
            // Success...

            $("#validation-output-success").text("Success!");
        },
        error: function (data) {
            // Error...

            var errors = $.parseJSON(data.responseText);

            $.each(errors, function( k, v ) {
                $("#validation-output-error").text( v ).append('<br />');
            });

        }
    });
});

它工作正常,当有空的东西时它会返回它并说明什么输入是空的。同理,如果有效,则输出成功!

但现在问题来了,当有一个字段为空时他会输出它,但是当你再次按下提交按钮时他会给出相同的错误但不会删除旧错误。所以你会得到双重相同的错误信息。

然后如果你完成它,他会返回成功。但他仍然会显示旧的错误信息。

我的问题是,当您再次提交表单时,我如何使用 .fadeOut()、.remove() 或其他 jquery 函数来删除旧错误。

最佳答案

您可以在提交时清空错误文本和 fadeOut()。然后将 fadeIn() 添加到成功/错误消息中。像这样的东西:

$('#contact-form').on('submit', function (event) {
    event.preventDefault();
     $("#validation-output-error").text("").fadeOut();

    $.ajax({
        url: 'send-mail',
        type: 'POST',
        data: $('#contact-form').serialize(),
        success: function (data) {
            // Success...

            $("#validation-output-success").text("Success!").fadeIn();
        },
        error: function (data) {
            // Error...

            var errors = $.parseJSON(data.responseText);

            $.each(errors, function( k, v ) {
                $("#validation-output-error").text( v ).append('<br />').fadeIn();
            });

        }
    });
});

此外,如果您还没有这样做,您可能希望在 css 中提供错误/成功消息 display: none;

关于javascript - jQuery:如果存在错误,请删除旧的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34337650/

相关文章:

jquery ui可拖动可排序元素到iframe中

javascript - 仅在一个文本区域中计算字符

javascript - 使用 javascript 更改图像时未加载 img

html - 如何将 OpenOffice ODF 文件转换为 HTML

html - 为什么我在 pythonanywhere 中的 CSS 需要一天时间才能加载?

javascript - fullCalendar 用户事件

javascript - 如何在 jQuery 中缩小和恢复 Div

javascript - 当目标相同时,我不想要切换功能

javascript - Angular 11 - 将不同样式的图标添加到自定义按钮组件

html - div中的文本区域宽度问题