我在一个页面上有三个文本框,每个文本框都有不同的ID
Class
,位于不同的div
。我试图定位页面上的所有<textarea>
并运行一个函数dosomething()
如果用户仍然在textarea中输入。问题是它只在#first
textarea上工作,其余的都被忽略了。以下是我正在使用的代码。谢谢!
$('#first, #second, .third').keyup(function(){
if ($('#first, #second, .third').val()){
alert("User is typing");
}})
答案 0 :(得分:2)
您可以通过在选择器中指定标签名称来定位元素:
$('textarea').on('keyup', function(e) {
console.log('typing')
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<textarea></textarea>
</div>
<div>
<textarea></textarea>
</div>
<div>
<textarea></textarea>
</div>
&#13;
答案 1 :(得分:1)
获取匹配元素集中第一个元素的当前值。
您的检查仅查看所选内容中的第一个元素是否具有值。你可能想这样做:
$('#first, #second, .third').keyup(function(){
if ($(this).val()) {
alert("User is typing");
}
})
答案 2 :(得分:0)
试试这个:
$('#first, #second, .third').forEach(function(txtarea){
$(txtarea).keyup(function(){
if ($(this).val()){
alert("User is typing on THIS textarea");
}
})
})
我不知道为什么,但我也遇到了textarea的一些问题。对我来说,textarea上没有发生一些事件。 在这段代码中,我为每个textarea创建了一个循环,并为keyup监听器提供服务。 Javascript有很多事要做。 :)