2011-02-17 82 views
1

我将在引用数据库中的表的id时使用model.id,并在引用给html中元素的id时使用id。将“数据库ID”分配给页面上的多个html ID

我有一个django项目,我正在使用一些隐藏的表单域(所有表单现在都有相同的id,现在隐藏域)来存放model.id。只要在渲染页面时知道model.id,这就非常有效。

我现在试图在没有给出model.id的情况下(即有人选择创建我的模型的新实例)修改过程以工作。至于后端去,我有这个工作。没有提供model.id,视图知道它应该给出空的表单。在这一点上,我选择不创建模型的新实例,因为我只想要如果用户实际输入某种形式的东西。

如果用户在表单中输入了某些内容,表单处理将创建一个新的模型实例,并将该id传回给用户浏览器。我试图做的是使用jquery表单插件来将返回数据保存在隐藏的位置,然后我会查看并使用val将所有隐藏字段的ID设置为返回的model.id,以便下一个字段/表单用户提交将知道写入刚刚创建的模型。

现在看这个我猜想有相同的ID多个元素的想法是坏的,但我真的希望他们永远是相同的,只有那里隐藏的领域,以容纳相同的Model.id在页面上的每个表单上。

我试着做下面的事情。然而,页面上只有一个ID确实获得了赋值。我应该以不同的方式完成这个目标吗?有没有什么我应该添加,使所有id事件设置类似.val(model.id)?如果没有,有没有人对如何解决这个问题有任何建议?也许django提供了一种更干净的方式来完成我正在努力完成的任务?

从表单提交返回的响应。

<response> 
    <the_model_id_brought_back>3732</the_model_id_brought_back> 
    ... 
<response> 

jQuery代码试图将所有的 “id_in_multiple_places” IDS到model.id退还。

jQuery('#descriptionForm').ajaxForm({ 
      target: '#response', 
      success: function(data) { 
       the_model_id = jQuery('#response').find("the_model_id_brought_back").html(); 
       jQuery('#id_in_multiple_places').val(the_model_id); 
      } 
     }); 

解释为什么我有这样的多种形式。表格由1个可见字段组成。多个表单在页面上。当用户离开一个领域(这意味着他们也离开了这个表格),我将把这个表格提交给服务器。这将允许他们的数据始终保存,即使他们中途停止并将他们的计算机扔出窗外。他们可以去一台不同的电脑,拿起他们离开的地方。

谢谢。

回答

2

现在看看这个我猜有具有相同ID的多个元素的想法是坏

这不仅是坏,这是不可能的。你不可以做这个。你可以通过使用类来解决这个问题,这些类不一定是唯一的,但你可能不应该这样做。

应该做的,是将这些元素指定明智的类名称,并指定他们的共同祖先的ID。您可以从该元素开始,向下遍历以按类名查找子元素。

+0

认为这是和看起来不好......不知道这是不可能的。谢谢。当你说分配他们的共同祖先的ID,这将如何与每个窗体隐藏的表单字段?此字段是必需的,所以后端知道将数据保存到的人员。来自共同祖先的这个身份证是否仍然可以作为隐藏领域的一部分被传递? – wilbbe01 2011-02-17 05:48:33