为 django 评论表单分配唯一 ID
Posted
技术标签:
【中文标题】为 django 评论表单分配唯一 ID【英文标题】:assign unique ID to django comments form 【发布时间】:2011-04-09 02:28:27 【问题描述】:我正在构建与 facebook、cmets 等类似的墙功能。
我正在使用 django 的 cmets 框架和 jquery 来发布并获得成功,我正在寻找一种方法来提取隐藏的 id_object_pk
的值并将其用作表单 id
您的正常表单以下列方式呈现。
<form action="/comments/post/" method="post" class="comment-form" id="">
<input type="hidden" name="content_type" value="wall.post" id="id_content_type" />
<input type="hidden" name="object_pk" value="76" id="id_object_pk" />
<input type="hidden" name="timestamp" value="1283848690" id="id_timestamp" />
<input type="hidden" name="security_hash" value="ccf0e2f3cbbd57cb043df3f304a8dd50a74e972b" id="id_security_hash" />
如何访问这些详细信息?
【问题讨论】:
【参考方案1】:我的 jQuery fu 很弱,所以对这个答案持怀疑态度。可能有更好的方法来做到这一点。
首先,您需要找到带有评论 id 的输入。
var element = $('#id_object_pk');
接下来,提取评论 ID 本身。那就是输入元素的value
属性。
var comment_id = element.attr('value');
最后更新表单的 id 属性并将其设置为comment_id
。
var form = $('.comment-form');
form.attr('id', comment_id);
【讨论】:
是的,有道理,我会试试看。虽然我知道你可以删除第二行。并使第一个 var element = $('#id_object_pk').val(); 确实有效,但是基于我有多个表单的事实,所有表单 IDS 最终都是相同的,即 77 左右。 那是因为你所有的表单共享相同的样式类。 如果您最初为每个表单使用不同的非空 ID,那么您可以根据需要使用该 ID 来选择和替换。【参考方案2】:通过使用 jQuery 中的 .each 函数来解决这个问题。
$('.comment-form').each(function()
var element = $(this).find('#id_object_pk').val();
$(this).attr('id', element);
);
【讨论】:
以上是关于为 django 评论表单分配唯一 ID的主要内容,如果未能解决你的问题,请参考以下文章