簡體   English   中英

如何匹配列表?

[英]How to match up lists?

我正在做一個待辦事項清單。 我有一個相互關聯的復選框和文本字段的列表。 我正在用jquery創建待辦事項列表,它輸出以下內容:

<li name="todo_li" class="todo_items">
     <input class="incomplete" name="done_item" id="chk_box1" type="checkbox" checked>
     <div id="chk_div1">asdf</div>
     <input type="hidden" name="todo_text" id="todo_text1" value="asdf">
     <a class="remove" href="">x</a>
</li>
<li name="todo_li" class="todo_items">
     <input class="incomplete" name="done_item" id="chk_box2" type="checkbox">
     <div id="chk_div1">asdf</div>
     <input type="hidden" name="todo_text" id="todo_text2" value="asdf">
     <a class="remove" href="">x</a>
</li>
<li name="todo_li" class="todo_items">
     <input class="incomplete" name="done_item" id="chk_box3" type="checkbox" checked>
     <div id="chk_div1">qwer</div>
     <input type="hidden" name="todo_text" id="todo_text3" value="qwer">
     <a class="remove" href="">x</a>
</li>

在我看來,我將獲得所有todo_text和done_items以及以下內容:

todo_text = request.POST.getlist('todo_text')                                                                                       
print todo_text                                                                                                                     
done_item = request.POST.getlist('todo_item')                                                                                       
print todo_item 

輸出返回:

todo_text= [u'asdf', u'asdf', u'qewr']
done_item= [u'on', u'on']

如果我創建一個項目並立即選中該框,比如說todo_text數組中的項目0和2,我如何才能使done_items匹配?

我正在嘗試單獨做以下幾行:

   List3 = []                                                                                                                      
   print List3                                                                                                                     
   for i in range(len(todo_text)):                                                                                                 
       for j in range(len(todo_item)):                                                                                             
           if todo_text[i] == todo_item[j]:                                                                                        
              List3.append(1)                                                                                                     
           else:                                                                                                                   
              List3.append(0)                                                                                                     
   return List3 

我正在嘗試使用上面的信息填充此模型che_box字段和todo_text字段。

class TaskTodo(models.Model):                                                                                                               
    chk_box           = models.BooleanField(verbose_name='')                                                                                
    todo_text         = models.CharField(max_length=256, verbose_name="")                                                                   
    submitter         = models.ForeignKey(User, null=True, blank=True)                                                                      
    date_created      = models.DateTimeField(editable=False)                                                                                
    date_updated      = models.DateTimeField(editable=False)  

有什么建議么?

這是我使用的表格:

http://jsfiddle.net/Lz6Tq/

我不確定我是否理解您的問題。 如果要檢查每個todo_text是否在todo_item中,則可以執行以下操作

List3 = [1 if e in todo_item else 0 for e in todo_text]

這樣的表格將為您提供POST數據,例如...

done_item=on&todo_text=asdf&todo_text=asdf&done_item=on&todo_text=qwer

...很難解析,因為每個復選框都具有相同的name

如果您為每個與id匹配的復選框添加一個value屬性,那么您將獲得...

done_item=chk_box1&todo_text=asdf&todo_text=asdf&done_item=chk_box3&todo_text=qwer

...因此request.POST.getlist('done_item')將返回[u'chk_box1', u'chk_box3'] ,您可以從中推斷出選中了第1框和第3框。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM