我有以下Django形式:
class EmailForm(forms.Form):
name = forms.CharField(...)
email = forms.CharField(...)
message = forms.CharField(...)
Run Code Online (Sandbox Code Playgroud)
然后我将其呈现在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>
Run Code Online (Sandbox Code Playgroud)
我试图在按下提交按钮后将其禁用。这是我的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>
Run Code Online (Sandbox Code Playgroud)
当我覆盖标记中的onclick字段时<input>,由于Javascript函数的作用,该按钮被禁用,但表单未提交(页面未重新加载,Django不处理POST)。禁用提交按钮后,如何继续执行默认操作?
您的模板没有<form></form>标签,没有这些标签,则无法提交表单。
您应该写:
<form id="MyForm">
<div class="controls">
...
<input type="submit" value="Say hello" onclick="sendEmail(this);">
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
应该可以做到这一点,但是万一不行(我确实认为可以),可以将其添加到sendEmail函数中:
document.getElementById("myForm").submit();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |