You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ajax提交注册表单仅首次展示成功提示后续提交不显示问题排查

问题根因
  • 首次提交成功后执行$('#ohsnap').fadeOut('fast')时,jQuery会自动为该元素添加display: none的内联样式。后续提交成功时你只移除了d-none类,没有清除这个内联样式,也没有主动将元素设置为可见,因此提示框实际处于隐藏状态,无法正常展示。
  • 额外隐患:如果用户短时间内多次提交,多个定时器会叠加触发,可能导致新的提示还没到2秒就被之前的定时器提前隐藏。
修复代码

仅需要修改前端Ajax的done回调逻辑即可,修改后的完整代码如下:

<script>
    // 存储定时器ID,避免多次提交时定时器冲突
    let noticeTimer = null;
    $("#btn").on('click', function () {
        var ajaxFraindName = $("#ajaxFraindName").val();
        var ajaxControlItem = $("#ajaxControlItem").val();
        var calender = $("#calender").val();
        var SingelControlState = $("#SingelControlState").val();

        if (ajaxFraindName == '' || ajaxControlItem == '' || calender == '' || SingelControlState == '') {
            alert("لطفا ورودی ها را پر کنید");
        } else {
            $.ajax({
                type: "Post",
                url: '@Url.Action("submitSingelControlItem", "Hasabrsee")',
                data: {
                    'ajaxControlItem': $("#ajaxControlItem").val(),
                    'ajaxFraindName': $("#ajaxFraindName").val(),
                    'Projectid': $("#Projectid").val(),
                    'ProjectName': $("#ProjectName").val(),
                    'ProjectManagementName': $("#ProjectManagementName").val(),
                    'calender': $("#calender").val(),
                    'SingelControlState': $("#SingelControlState").val(),
                }
            }).done(function (res) {
                if (res.status == 'ok') {
                    // 先清除之前的定时器,避免旧定时器提前隐藏本次提示
                    clearTimeout(noticeTimer);
                    // 先调用.show()清除fadeOut设置的display:none内联样式,再修改类和内容
                    $("#ohsnap").show().removeClass('d-none alert-danger').addClass('alert-success').html('مورد کنترلی با موفقیت ثبت شد');
                    $("#ajaxControlItem").val("");
                    $("#ajaxFraindName").val("");
                }
                noticeTimer = setTimeout(function () {
                    $('#ohsnap').fadeOut('fast', function() {
                        // fadeOut结束后加回d-none类,重置元素初始状态
                        $(this).addClass('d-none');
                    });
                }, 2000)
            });
        }
    });
</script>
核心改动点说明
  • 显示提示前新增show()方法,清除fadeOut留下的display: none内联样式
  • 新增定时器ID存储,每次显示新提示前清除上一次的定时器,避免定时器冲突
  • fadeOut回调中重新加回d-none类,重置元素初始状态,避免样式残留

内容的提问来源于stack exchange,提问作者stoo frisat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 22:36:03