我正在尝试构建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/

10-12 12:35
查看更多