0
我已經修改了我的comments/form.html
和comments/posted.html
以類似的方式在Facebook工作,即您發表評論,數據posted
然後用給定的裝載,並附加一定div
ID
。Django的jQuery的評論形式發佈過很多次
我的問題是,它似乎發佈了所有的數據量的形式。
因此,場景是,我有5個表格,其中一個數據,如果我點擊評論,它提交的數據,1成功,但4返回空。
<div id="commentload"></div>
<div class="comments">
<form action="{% comment_form_target %}" method="post" class="comment-form">
{% if next %}<input type="hidden" name="next" value="{{ next }}" />{% endif %}
{% for field in form %}
{% if field.is_hidden %}
{{ field }}
{% else %}
{% if field.errors %}{{ field.errors }}{% endif %}
<p
{% if field.errors %} class="error"{% endif %}
{% ifequal field.name "honeypot" %} style="display:none;"{% endifequal %}>
</p>
{% endif %}
{% endfor %}
<textarea id="id_comment" rows="1" cols="60" name="comment" class='id_comment'></textarea>
<p class="submit">
<input type="submit" name="post" class="submit-post blue comment_submit" value="{% trans "Comment" %}" id="button" style="float:right;margin-top:-6px;margin-bottom:4px;"/>
</p>
<div class="clearfix"></div>
</form>
</div>
然後我的jQuery看起來如下
<script type="text/javascript">
$(document).ready(function(){
// Here it runs a simple each statement to apply a unique ID to each comment-form
$('.comment-form').each(function(){
var element = $(this).find('#id_object_pk').val();
$('#commentload').attr('id','commentload'+element);
$(this).attr('name', element);
$(this).attr('id', element);
$(this).find('#button').attr('id', element);
$(this).find('#id_content_type').attr('id', 'id_content_type' + element);
$(this).find('#id_timestamp').attr('id', 'id_timestamp' + element);
$(this).find('#id_security_hash').attr('id', 'id_security_hash' + element);
$(this).find('#id_comment').attr('id', 'id_comment' + element);
});
$(".comment_submit").live("click",function() {
var ID = $(this).attr('id');
var content_type = $('#id_content_type'+ID).val();
var timestamp = $('#id_timestamp'+ID).val();
var security_hash = $('#id_security_hash'+ID).val();
var comment = $('#id_comment'+ID).val();
var dataString = 'content_type='+ content_type +'×tamp='+ timestamp +'&security_hash=' + security_hash + '&comment=' + comment + '&object_pk=' + ID;
if (comment=='') {
alert('Please enter a comment');
} else {
$('#id_comment'+ID).val('').addClass("greyout");
$.ajax({
type: "POST",
url: "{% comment_form_target %}",
data: dataString,
cache: false,
success: function(html){
$("#commentload"+ID).append(html);
$('#id_comment'+ID).val('').removeClass("greyout").focus();
}
});
}
return false;
});
});
</script>
HTML輸出爲每一個
<div id="wall-comments">
<div class="comments">
<form action="/comments/post/" method="post" class="comment-form" id="114">
<input type="hidden" name="content_type" value="wall.post" id="id_content_type114">
<input type="hidden" name="object_pk" value="114" id="id_object_pk">
<input type="hidden" name="timestamp" value="1291370494" id="id_timestamp114">
<input type="hidden" name="security_hash" value="2d208d05d725528dfef940d8a5b520362faa3317" id="id_security_hash114">
<textarea id="id_comment114" rows="1" cols="60" name="comment" class="id_comment" style="height: 24px; overflow-x: hidden; overflow-y: hidden; "></textarea>
<p class="submit">
<input type="submit" name="post" class="submit-post blue comment_submit" value="Comment" id="114" style="float:right;margin-top:-6px;margin-bottom:4px;">
</p>
<div class="clearfix"></div>
</form>
</div>
</div>
感謝您的建議。我試過了,但它似乎仍然通過了所有的驗證形式。我還有另一種解決方法嗎? – ApPeL 2010-12-01 08:49:11