我有以下 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/