需要帮助使用jQuery计算textfield中的字符吗

需要帮助使用jQuery计算textfield中的字符吗,jquery,Jquery,我的问题是: 如果文本长度至少为5个字符,我需要“启用”按钮,如果少于5个字符,我需要“禁用”按钮 如果文本长度为5个字符,我还添加了$.click函数来触发“whatever”函数。 现在,我还需要“禁用”这个点击功能,如果它的长度小于5个字符 但说起来容易做起来难。这是我现在拥有的代码,它不起作用:) jQuery('#userName').keydown(函数() { if((jQuery(this).val().length+1)==5) { jQuery(#guide_btnCrea

我的问题是:

如果文本长度至少为5个字符,我需要“启用”按钮,如果少于5个字符,我需要“禁用”按钮

如果文本长度为5个字符,我还添加了$.click函数来触发“whatever”函数。 现在,我还需要“禁用”这个点击功能,如果它的长度小于5个字符

但说起来容易做起来难。这是我现在拥有的代码,它不起作用:)


jQuery('#userName').keydown(函数()
{
if((jQuery(this).val().length+1)==5)
{
jQuery(#guide_btnCreateGuide”).css({'background-position':'top','cursor':'pointer'});
jQuery(“#guide_btnCreateGuide”)。单击(函数(){do something});
}
else if((jQuery(this.val().length-2)<5)
{   
jQuery(“#guide_btnCreateGuide”).css({'background-position':'bottom','cursor':'default'});
//在这里,我真的想禁用我在上面的OnClick中添加的任何内容。但是如何禁用呢?
}                          
});
我需要一些人帮我把它弄好

更新

下面是基于此线程和的帮助的解决方案

jQuery('#input_guideName').keyup(函数(e)
{
如果(this.value.length==5)
{
jQuery(#guide_btnCreateGuide”).css({'background-position':'top','cursor':'pointer'});
jQuery(“#guide_btnCreateGuide”).bind('click',function(){
createNewGuide();
});
}
else if(this.value.length<5)
{
jQuery(“#guide_btnCreateGuide”).css({'background-position':'bottom','cursor':'default'});
jQuery(“#guide_btnCreateGuide”).unbind('click');
}
}); 
单击事件的长度为5个字符,小于5个字符

jQuery('#userName').keydown(function()
{
    jQuery("#guide_btnCreateGuide").unbind('click');
    if((jQuery(this).val().length + 1) == 5)
    {
        jQuery("#guide_btnCreateGuide").css({'background-position':'top', 'cursor':'pointer'});
        jQuery("#guide_btnCreateGuide").bind('click', function() { do something });
    }
    else if((jQuery(this).val().length - 2) < 5)
    {   
        jQuery("#guide_btnCreateGuide").css({'background-position':'bottom', 'cursor':'default'});
    }  
}
jQuery('#userName').keydown(函数()
{
jQuery(“#guide_btnCreateGuide”).unbind('click');
if((jQuery(this).val().length+1)==5)
{
jQuery(#guide_btnCreateGuide”).css({'background-position':'top','cursor':'pointer'});
jQuery(“#guide_btnCreateGuide”).bind('click',function(){do something});
}
else if((jQuery(this.val().length-2)<5)
{   
jQuery(“#guide_btnCreateGuide”).css({'background-position':'bottom','cursor':'default'});
}  
}

您是否尝试过禁用该元素而不是重新绑定它?我认为这将允许您提前绑定createguide按钮,使其保持绑定状态,并根据用户名输入简单地切换启用/禁用

$('#guide_btnCreateGuide').click(function() {
    // Do something  
});

$('#userName').keydown(function() {
    var username = $(this).val();
    if (username.length > 5) {
        $('guide_btnCreateGuide').attr('disabled', '')
    } else {
        $('guide_btnCreateGuide').attr('disabled', 'disabled')   
    }    
});

但是,如果值小于5,我将在每个keudown上“解除绑定”它?也许这不重要?另一个问题是,如果值小于5,我似乎无法更改按钮颜色。计数出错:(我稍微更改了keydown函数。我认为这种方式更好。不要继续绑定事件。我不确定我是否理解你的意思“计数出错”。按钮颜色和计数不应该有关联。你能更详细地描述一下吗?绑定/取消绑定的想法很正确。但是关于计数字符,你的解决方案不起作用。使用我发布的上述解决方案。我想取消绑定会起作用(?).我现在的问题是数数字符.倒计时没问题,倒计时才是问题所在。
jQuery('#userName').keydown(function()
{
    jQuery("#guide_btnCreateGuide").unbind('click');
    if((jQuery(this).val().length + 1) == 5)
    {
        jQuery("#guide_btnCreateGuide").css({'background-position':'top', 'cursor':'pointer'});
        jQuery("#guide_btnCreateGuide").bind('click', function() { do something });
    }
    else if((jQuery(this).val().length - 2) < 5)
    {   
        jQuery("#guide_btnCreateGuide").css({'background-position':'bottom', 'cursor':'default'});
    }  
}
$('#guide_btnCreateGuide').click(function() {
    // Do something  
});

$('#userName').keydown(function() {
    var username = $(this).val();
    if (username.length > 5) {
        $('guide_btnCreateGuide').attr('disabled', '')
    } else {
        $('guide_btnCreateGuide').attr('disabled', 'disabled')   
    }    
});