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

使用jQuery验证表单输入后,如何提交表单数据?

表单验证通过后提交表单的实现方法

你当前的代码已经通过AJAX完成了表单输入的前置验证,但验证通过后不知道如何提交表单数据,这里提供两种常用的解决方法:

方法一:触发原生表单提交(页面跳转)

你已经通过event.preventDefault()阻止了表单的默认提交行为,验证通过后可以直接调用表单DOM元素的原生submit()方法——这个方法不会再次触发你绑定的jQuery提交事件,能直接让表单按照预设的action和method提交到process.php:

修改代码中的else块即可:

} else {    
    // 验证通过,触发原生表单提交
    this.submit();
}

完整修改后的代码:

<form action="process.php" method="POST">
    Enter your email: 
    <input type="email" name="email" id="email" required>
    <input type="submit" value="Subscribe!">
</form>

<script>
$(document).ready(function () {
    $("form").submit(function(event) {
        
        var formData = {
            email: $("#email").val()
            // ...
        };
        
        $.ajax({
            type: "POST",
            url: "/validation/form",
            data: formData,
            dataType: "json",
            encode: true,
        })
        .done(function(data) {
        
            console.log(data);
            
            if (!data.success) {
                
                if (data.errors.email) {
                    $('#email').after('<div class="error"><p>' + data.errors.email + '</p></div>');
                }
                
                // ...
            
            } else {    
                // 验证通过,触发原生表单提交
                this.submit();
            }
        })
        .fail(function (data) {

            $("form").before(
                '<div class="flash_message"><p>Could not reach server, please try again later.</p></div>'
            );
        });
        
        
        event.preventDefault();
    });
}); 
</script>

方法二:AJAX直接提交(无刷新)

如果不想页面跳转,可在验证通过后直接用AJAX把数据提交到process.php,实现无刷新提交,提升用户体验:

修改else块如下:

} else {    
    // 验证通过,无刷新提交到process.php
    $.ajax({
        type: "POST",
        url: "process.php",
        data: formData,
        encode: true,
        success: function(res) {
            // 提交成功后的逻辑示例
            $("form").before('<div class="success"><p>订阅成功!</p></div>');
            $("#email").val(''); // 清空输入框
        },
        error: function() {
            $("form").before('<div class="error"><p>提交失败,请稍后重试</p></div>');
        }
    });
}

这种方式适合需要用户留在当前页面的场景,无需刷新即可完成提交流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 11:35:59