我正在尝试构建Django表单。我尝试实现的JavaScript逻辑是,如果输入表单的值不为空,则提交表单。但是,我不确定如何获取{{form.value}}的ID。
<form id = "form1" action="." method="POST">{% csrf_token %}
<div class=".col1" style="float:left;vertical-align: middle;">
{{ form.region }}
{{ form.operator }}
</div>
<div class="col-xs-2 style="vertical-align: middle;">
{{ form.value }}
</div>
</form>
function SubmitForm1(){
if(document.getElementById( {{Form.Value}} ).value != ""){
document.getElementById("form1").submit();
}
}
最佳答案
问题的根源在于,您正在将服务器端处理的django模板中的代码与客户端(浏览器)中处理的javascript中的代码混合在一起。服务器端存在的变量名在浏览器中的存在方式不同。在javascript中,您只能使用模板已呈现到发送到浏览器的HTML输出中的元素。
对于django表单,您的表单字段通常使用id_
+字段名的ID呈现。所以:
document.getElementById("id_region").value
document.getElementById("id_operator").value
document.getElementById("id_value").value
..etc,将为您提供表单字段的值。
如果在视图中对Form构造函数使用
prefix=
参数,例如:myform = MyFormClass(prefix='form1')
然后,前缀(
form1
),后接破折号-
,将被添加到该格式的所有字段的字段名之前: document.getElementById("id_form1-value").value
如果不确定表单中字段的名称或ID,则始终可以在浏览器中执行“查看源代码”或“检查元素”以查看html文档中的内容。
关于javascript - 如何使用JavaScript验证表单?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45679062/