jQuery:点击事件名为$(‘textarea’).val().trim().length times

前端之家收集整理的这篇文章主要介绍了jQuery:点击事件名为$(‘textarea’).val().trim().length times前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_502_0@
嗯,这就是发生的事情.

我们之前都看到了这一点:只有在我们在输入文件中输入内容后,按钮才会变为活动状态并且可单击.我正在努力实现这一点.我想我要么走错了路,而且我应该以不同的方式放置我的jQuery选择器,或者这只是代码错误.

$('textarea').bind({'keyup' : function(){
    if ($(this).val().trim().length){
        $('.send-Feedback').removeClass('inactive').click(function(){
            console.log('clicked');
        });
    } else {
        $('.send-Feedback').addClass('inactive').off('click');
    }
}})

基本上,我在控制台中多次看到“clicked”,但如果我在if检查之前添加了console.log(‘key pressed’),那么每次keydown都会按预期显示一次.

有什么建议?

解决方法

您也可以将按钮设置为禁用.这将阻止点击事件触发:
if($('textarea').val().trim().length > 0)
    $('.send-Feedback').removeAttr('disabled');
else
    $('.send-Feedback').attr('disabled','disabled');

然后分开你的点击功能

$('textarea').on('input',function(){ ... });
$('.send-Feedback').on('click',function() { ... });

JSFiddle example.

thing is,it’s not really a button,but an <a>

在这种情况下,您可以使用类,我想这是您目前正在做的事情:

HTML:

<a href="#" class="send-Feedback disabled">Click</a>

JavaScript textarea长度检查:

if( $(this).val().trim().length > 0 )
    $('.send-Feedback').removeClass('disabled');
else
    $('.send-Feedback').addClass('disabled');

JavaScript点击功能

$('.send-Feedback').on('click',function(e) {
    e.preventDefault();
    if($(this).hasClass('disabled'))
        return;

    alert('Clicked!');
});

JSFiddle example.

原文链接:https://www.f2er.com/jquery/241356.html

猜你在找的jQuery相关文章