针对所有Textarea的JQuery无法使用.keyup

时间:2018-04-13 22:14:58

标签: javascript jquery

我在一个页面上有三个文本框,每个文本框都有不同的ID Class,位于不同的div。我试图定位页面上的所有<textarea>并运行一个函数dosomething()如果用户仍然在textarea中输入。问题是它只在#first textarea上工作,其余的都被忽略了。以下是我正在使用的代码。谢谢!

$('#first, #second, .third').keyup(function(){
 if ($('#first, #second, .third').val()){
     alert("User is typing");
 }})

3 个答案:

答案 0 :(得分:2)

您可以通过在选择器中指定标签名称来定位元素:

&#13;
&#13;
$('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;
&#13;
&#13;

答案 1 :(得分:1)

$.val

  

获取匹配元素集中第一个元素的当前值。

您的检查仅查看所选内容中的第一个元素是否具有值。你可能想这样做:

$('#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有很多事要做。 :)