针对所有文本区域的 JQuery 不适用于 .keyup



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

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

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

$('textarea').on('keyup', function(e) {
  console.log('typing')
})
<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>

$.val

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

您的检查仅查看所选内容中的第一个元素是否具有值。 您可能想执行以下操作:

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

试试这个:

$('#first, #second, .third').forEach(function(txtarea){
 $(txtarea).keyup(function(){
    if ($(this).val()){
       alert("User is typing on THIS textarea");
    }
 })
})

我不知道为什么,但我在文本区域也遇到了一些问题。对我来说,某些事件不会在文本区域触发。 在此代码中,我为每个文本区域制作了一个循环,并创建了键控侦听器。 Javascript有很多事情要做。:)

最新更新