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

PHP表单提交防止跳转 实现提交后输入框标红2秒复位及提示求助

第一步:调整HTML代码

新增提示文本容器,用来显示提交后的"12345"提示:

<form action="mail.php" method="POST" onsubmit="return foo(this);">
    <input type="text" name="full_name" value="" required>
    <!-- 新增提示文本容器,默认隐藏 -->
    <p id="submit-tip" style="display:none;color:#ff3f4c;margin:5px 0 0 0;"></p>
    <button type="submit">submit form</button>
</form>

第二步:替换原有JavaScript代码

直接替换你原来的foo函数即可实现需求:

function foo(form){
    // 提前获取需要操作的元素
    const $input = $(form).find('input[name="full_name"]');
    const $tip = $('#submit-tip');
    
    // 提交后立即设置输入框样式、显示提示
    $input.css({
        "background-color": "#ffebed",
        "border": "2px solid #ff3f4c"
    });
    $tip.text('12345').show();

    $.ajax({
        url: $(form).attr('action'),
        type: 'POST',
        data: $(form).serialize(),
        success: (res)=>{
            // 原有成功逻辑保留
            console.log(res);
        },
        error: (err)=>{
            // 原有错误逻辑保留
            console.error(err);
        },
        complete: ()=>{
            // 2秒后恢复样式、隐藏提示、重置表单
            setTimeout(()=>{
                $input.css({
                    "background-color": "#fff",
                    "border": "1px solid #f4f4f4"
                });
                $tip.hide();
                form.reset();
            }, 2000);
        }
    });

    return false;
}

补充说明

如果你的输入框默认样式和上述恢复的样式不一致,把setTimeout里的css属性值改成你实际的默认值即可。如果不需要等AJAX请求完成才开始计时,把setTimeout这段代码移到AJAX请求外、$tip.text('12345').show();的后面即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:12:02