>我在一个页面上有三个文本框,每个文本框都有不同的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有很多事情要做。:)