javascript - 如何使用 Javascript 提交 Django 表单?

标签 javascript django

我有以下 Django 表单:

class EmailForm(forms.Form):
    name = forms.CharField(...)
    email = forms.CharField(...)
    message = forms.CharField(...)

然后我像这样在我的 HTML 中呈现:

<div class="controls">
    {% csrf_token %}
    <div class="form-group">
        {{ form.name }}
    </div>
    <div class="form-group">
        {{ form.email }}
    </div>
    <div class="form-group">
        {{ form.message }}
    </div>
    <input type="submit" value="Say hello" onclick="sendEmail(this);">
</div>

我试图在按下提交按钮后将其禁用。这是我的 javascript 函数:

<script>
    function sendEmail(this1)
    {
        var name = document.getElementById("form_name").value;
        var email = document.getElementById("form_email").value;
        var message = document.getElementById("form_message").value;

        var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
        var result = re.test(String(email).toLowerCase());

        if (name != "" && result && message != "") {
            this1.disabled=true; 
        }
    }
</script>

当我覆盖 onclick <input> 中的字段标记,按钮由于 Javascript 函数而被禁用,但表单不会提交(页面不会重新加载,Django 不会处理 POST)。如何在禁用提交按钮后继续其默认操作?

最佳答案

您的模板没有 <form></form>标签,没有这些就没有表单可以提交。

你应该写:

<form id="MyForm">
    <div class="controls">
    ...
    <input type="submit" value="Say hello" onclick="sendEmail(this);">
    </div>
</form>

那应该可以,但如果它没有(我真的认为它会),您可以将其添加到您的 sendEmail功能:

document.getElementById("myForm").submit();

关于javascript - 如何使用 Javascript 提交 Django 表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55718802/

相关文章:

javascript - react .js : Dynamically create complex DOM from nested JSON before rendering

javascript - 如何从 HTML 页面访问 FaunaDB?

jquery - 将 jQuery 数组发布到 Django

python - Django makemessages 错误未知编码 "utf8"

python - 在 Linux 中安装 Django 时出现无效语法错误

django - 如何上传图片文件并显示

javascript - 使用 Vanilla JS 监听 jQuery 事件

javascript - firefox 插件 SDK 不使用新音频播放音频

javascript - 从数组中选择随机元素时如何获得平衡输出?

python - 我如何从Python安排世博会通知