2012-08-29 58 views
0

我是django的新手,我不知道它包含一個表單庫。我用html和javascript寫了一個動態表單,顯示了複選框,如果單擊它們,它們會顯示更多輸入字段。將html格式轉換爲使用django表單庫

我想知道是否有一種簡單的方法來修改我已經寫入的代碼,以便使用django的表單庫,因爲使用djangos內置方法訪問表單數據變得如此簡單和更加簡單。

此外,如果我希望表單是動態的,我需要使用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文件中讀取格式信息

謝謝!

回答

0

使用Django窗體,您可以創建一個窗體,其中包含所需的字段並使用模板進行渲染。 當您構建Django表單時,處理表單將變得很容易。請參考Working with forms

對於動態啓用/禁用字段,您編寫的代碼可以與使用'id'的django放入表單字段的更改一起使用。我會建議使用jQuery來設置元素的事件處理程序。

+0

哦,我不知道我的JavaScript可以與Django的形式工作!我將如何引用javascript中的單獨複選框和django表單的值? @Rohan – Santiago

+0

哦,我不知道我的JavaScript可以與Django的形式工作!我將如何引用javascript中的單獨複選框和django表單的值? @Rohan – Santiago

+0

@Santiago您可以先查看頁面源(或Chrome開發人員工具),並確定要操作的字段的ID或名稱。 – Rohan