如何使用jQuery从具有相同ID的许多不同textarea
标记中获取值?我还需要允许用户选择他/她想要添加评论的textarea
,然后获得评论。
<div class="container">
<div class="wall_post">
<p>First Post</p>
<textarea id="user_comment" class="form-control" placeholder="Type your comment here"></textarea>
</div>
<div class="wall_post">
<p>Second Post</p>
<textarea id="user_comment" class="form-control" placeholder="Type your comment here"></textarea>
</div>
<div class="wall_post">
<p>Third Post</p>
<textarea id="user_comment" class="form-control" placeholder="Type your comment here"></textarea>
</div>
<div class="wall_post">
<p>Fourth Post</p>
<textarea id="user_comment" class="form-control" placeholder="Type your comment here" ></textarea>
</div>
</div>
到目前为止这是我的jQuery
此jQuery仅打印出第一个textarea
值,但忽略其他值。
$(document).on('keydown', function(e) {
var targetInput = $('#user_comment');
if(!targetInput.is(document.activeElement)) {
alert('Typed while not focused on #myInput!');
}else{
if(e.which == 13){
alert(targetInput.val());
targetInput.val('');
}
}
});
提前谢谢!
答案 0 :(得分:2)
Ids必须是唯一的。你可以使用classname。
此外,您可以使用target获取当前的keydown元素:
$(document).on('keydown', function(e) {
var targetInput = $(e.target);
if(!targetInput.is('textarea')) {
alert('Typed while not focused on #myInput!');
}else{
if(e.which == 13){
alert(targetInput.val());
targetInput.val('');
}
}});
<强> Working Demo 强>
答案 1 :(得分:0)
由于ID预计是唯一的,因此jQuery将返回第一个元素,而不是具有该ID的所有元素的列表。
要访问所有textareas,您可以使用此选择器(假设每个wall_post
div只有一个文本区域:
$('.wall_post textarea')
您也可以将keydown事件绑定到此:
$(document).on('keydown', '.wall_post textarea', function(e) {
// do whatever you need to with this textarea
});