Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Javascript提交Django表单?_Javascript_Django - Fatal编程技术网

如何使用Javascript提交Django表单?

如何使用Javascript提交Django表单?,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">

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

{%csrf_令牌%}
{{form.name}
{{form.email}
{{form.message}}
我试图在按下提交按钮后禁用它。下面是我的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>
document.getElementById("myForm").submit();

发送电子邮件功能(this1)
{
var name=document.getElementById(“表单名称”).value;
var email=document.getElementById(“form_email”).value;
var message=document.getElementById(“form_message”).value;
变量re=/^([^()\[\]\\,;:\s@“]+(\.[^()\[\]\,;:\s@“]+)*)(“+”)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[1,3}.[0-9]{1,3}.]124;([a-zA Z-0-9]+];
var result=re.test(字符串(email.toLowerCase());
如果(名称!=“”&&result&&message!=“”){
这1.disabled=true;
}
}

当我覆盖
标记中的
onclick
字段时,该按钮会由于Javascript函数而被禁用,但表单不会提交(页面不会重新加载,Django不会处理帖子)。禁用“提交”按钮后,如何继续执行该按钮的默认操作?

您的模板没有
标记,没有这些标记,就没有要提交的表单

你应该写:

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