2012-01-10 74 views
0

我有一些jquery,它將文本框的值插入到mysql數據庫中,然後附加一個容器,從而添加另一個註釋。除了應該附加容器並清除價值的成功函數之外,一切都可以工作,這些都不會發生。jquery post響應沒有正確地追加

JQUERY:

$('.commentBox').keypress(function(e) { 

    if(e.which == 13) { 
     e.preventDefault(); 

      if ($.trim($(this).val()) == ""){ 
       $('#nocomment').modal('show'); 
      } 
      else { 


    var form = $(this).closest('.commentForm'); 
    var commentbox = $(this).val(); 

    $.post('../comment.php' , form.serialize() , function(response){ 

      commentbox.val('');  
      form.closest('.commentContainer').append(response); 


    }); 
    } 
    } 
}); 

當我alert(response)結果是完美的(它的一個div)。

HTML:

<div class='commentContainer'> 
<form class='commentForm'> 
<input type='hidden' name='record_id' value='$answerid[$f]' /> 
<input type='hidden' name='question_id' value='$q' />"; 
<input type='text' class='commentBox' placeholder='...comment' name='comment' autocomplete='off' />"; 

回答

0

只是胡亂猜測,但是是有可能,jQuery是無法匹配form.closest('.commentContainer')

是否嘗試在安裝了Firebug的Firefox上運行它,以及如何使用一些console.log(...)來查看代碼是否正確運行。

$.post('../comment.php' , form.serialize() , function(response){ 
    console.log('code gets here'); // simple test 
    console.log(form.closest('.commentContainer')); // check if element is valid 

    commentbox.val(''); 
    form.closest('.commentContainer').append(response); 
}); 
+1

謝謝,我只是需要使用的兄弟姐妹,而不是最近的 – kirby 2012-01-10 14:15:39

0

你試過form.closest('.commentContainer').append(response.responseText);