Django 表单提交无需重新加载页面

Posted

技术标签:

【中文标题】Django 表单提交无需重新加载页面【英文标题】:Django form submission without reloading page 【发布时间】:2020-07-29 20:26:57 【问题描述】:

我有一个 django 注册表单。如果表单提交无效,页面正在重新加载。如果输入的数据无效,我需要留在同一页面上。 有没有办法在没有 ajax 的情况下完成这项工作? 如果没有,如何用ajax做到这一点

【问题讨论】:

您怎么会知道表单无效?一种可能性是在 JS 中使用客户端表单验证并禁用提交按钮,除非所有字段都正确填写。 嗨,anandu,我不知道是否可以在不使用 ajax 的情况下完成相同的操作。但我在 ajax 中做了类似的事情,如果你愿意,我可以使用用户登录表单与你分享代码 你能分享你的代码吗?提前谢谢 【参考方案1】:

如果您想在提交之前验证数据,那么您可以使用纯 javascript 来验证值并更新您的 html 显示输出,如下所示。

考虑下面的表格。

<form>
    <input id="target" type="text" value="">
</form>
<div id="other">
    Trigger the handler
</div>

使用下面的脚本

<script>

    $("#target").keyup(function ()         
        console.log(this.value);
    );

</script>

在上面的脚本中,一旦你获得了值,你就可以编写逻辑来验证它并相应地更新你的结果。

注意:这里的重点是事件处理程序,因为您键入任何调用函数的内容。

显然这可能不是实现这一目标的最佳方式,但可以将其视为演示。

【讨论】:

以上是关于Django 表单提交无需重新加载页面的主要内容,如果未能解决你的问题,请参考以下文章

带有 Bootstrap 模态视图的 Rails 应用程序,包含表单、提交和消失模态视图,无需重新加载页面

Django:jQuery触发表单提交onchange of checkbox并保留重新加载时的值

Blazor - 提交表单而不重新加载(没有 JS)

jQuery 和 Django 表单验证重新加载和提交事件监听器

表单提交后防止页面重新加载

使用Ajax验证并提交Django表单(django-crispy-forms)