我有一个部分显示相关博文的所有答案,其中添加了评论添加功能
<div id='answerwrapper'>
<?php foreach($answerStuff as $answer){?>
<div class='styleanswer'><?php echo $answer->answer_body;?></div>
<a href='' class='cmnt'>comment</a>
<form>
<textarea class='answerComment' placeholder=' add a comment......' ></textarea>
</form>
<hr>
<?php } ?>
</div>
有多个答案,所以应该有多个表单元素和注释textfield。我想要的是按回车键提交每个新评论。问题是我无法弄清楚如何在工作时访问特定表单与特定textarea.I添加此行以提交表单,但它不起作用
$(this).form.submit()
我可以管理的是以下内容:
var comment=$('.cmnt');
var textarea=$('.answerComment');
for(i=0;i<comment.length;i++){
(function(i){
$(comment[i]).click(function(e){
e.preventDefault();
$(textarea[i]).show();
$(textarea[i]).keypress(function(e){
if(e.which===13){
$(this).form.submit() //does nothing, need to submit the particular form element from here
}
});
$(this).hide();
});
})(i);
}
任何人都可以帮我解决这个问题吗?谢谢:))
答案 0 :(得分:1)
您可以使用document.activeElement选择当前突出显示的输入框。然后在输入键按下时通过Ajax post调用将该元素的值提交到服务器。
像(未经测试)的东西:
window.addEventListener("keydown", function(event) {
event.preventDefault();
var el = document.activeElement;
if(e.which == 13) {
$.ajax({
url: [your url],
data: JSON.stringify({name: el.name, value: el.value}),
method: "POST",
contentType: "application/x-www-form-urlencoded"
}).success(function(data) {
console.log("yay my untested code worked and stuff was submitted");
})
}
});
答案 1 :(得分:1)
Textarea是这种形式的孩子: $(本).parent( “形式”)提交();
您可以在jQuery中使用children()和parent()来选择子元素和父元素。