【问题标题】:converting html form to use django form library转换 html 表单以使用 django 表单库
【发布时间】:2012-08-23 16:31:47
【问题描述】:

我是 django 的新手,我不知道它包含一个表单库。我用 html 和 javascript 编写了一个显示复选框的动态表单,如果单击,它们会显示更多输入字段。

我想知道是否有一种简单的方法可以调整我已经编写的代码以使用 django 的表单库,因为使用 django 内置方法访问表单数据更加容易和清洁。

另外,如果我希望表单是动态的,我需要使用 formset 还是表单库具有这些功能?

这是我想转换为使用表单库的代码:

<script language="javascript"> 
        function ifChecked(id, id2){
        var ele = document.getElementById(id);
        var ele2 = document.getElementById(id2);

        if(ele.checked){
            ele2.style.display = "block";
        }
        else{
            ele2.style.display = "none";
        }
    }

    function ifCheckedLine(id, id2){
        var ele = document.getElementById(id);
        var ele2 = document.getElementById(id2);

        if(ele.checked){
            ele2.style.display = "inline";
        }
        else{
            ele2.style.display = "none";
        }
    }
</script>

<body>
<form name="myform" action="resultsget" method = "get" >            
        <fieldset>
            <input type="checkbox" value="total_money" id = "money_check" name="check" onchange="javascript:ifChecked('money_check','money');" /> Filter by Total Money</br>

                <div id="money" style="display:none" name="option">  

                    <input type="checkbox" value="more" id="money_condition" onchange="javascript:ifCheckedLine('money_condition', 'money_text');"  name="condition"/> <label for="condition" > > </label>

                        <div id = "money_text" style="display:none"  >
                            <input type="text" id="money_box" name="money_name" value="lower limit" />
                        </div></br>

                    <input type="checkbox" value="less" id="money_condition1" onchange="javascript:ifCheckedLine('money_condition1', 'money_text1');" name="condition"/> <label for="condition1"> < </label>

                        <div id = "money_text1" style="display:none;"  >
                            <input type="text" id="money_box1" name="money_name1" value="upper limit" />
                        </div>

                </div> 
</fieldset>

    <input type="submit" value="Submit" />
</form>​

我也想知道我必须在views.py文件中放入什么来读取表单信息

谢谢!!

【问题讨论】:

    标签: javascript django django-forms django-views


    【解决方案1】:

    使用 django 表单,您可以构建一个包含所需字段的表单,并使用模板渲染它。 当您构建 django 表单时,表单的处理将变得容易。参考Working with forms

    对于动态启用/禁用字段,您编写的代码可以与使用 django 为表单字段设置的“id”的更改一起使用。我会建议使用jQuery 为元素设置事件处理程序。

    【讨论】:

    • 哦,我不知道我的 javascript 可以与 django 表单一起使用!我将如何在 javascript 中引用 django 表单的单独复选框和值? @Rohan
    • 哦,我不知道我的 javascript 可以与 django 表单一起使用!我将如何在 javascript 中引用 django 表单的单独复选框和值? @Rohan
    • @Santiago 您可以从查看页面来源(或 chrome 开发人员工具)开始,并确定您想要操作的字段的 ID 或名称。
    • 这很棒。最后一个问题,如何将事件属性(onchange)添加到 django 表单中? @Rohan
    • @Santiago,我建议你使用 javascript(更好的 jQuery)来做到这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2019-01-14
    • 1970-01-01
    • 2018-08-15
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多