我有一些jquery接受文本框的值,将其插入到mysql数据库中,然后附加一个容器,从而添加另一个注释。一切都有效,除了成功函数应该附加容器并清除值,这些都不会发生。
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 :(得分: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 :(得分:0)
您是否尝试过form.closest('.commentContainer').append(response.responseText);