2012-12-17 67 views
1

如何在输入为空的情况下检查jQuery?如果输入为空,请使用jQuery进行检查

我想:

$('#location').keydown(function(event) { 
    if($("#location").val().length == 0) { $("#finalSearch").attr('disabled', 'true'); } 
    if($("#location").val().length != 0) { $("#finalSearch").removeAttr('disabled'); } 
}); 

但是,我想即使没有什么在这个领域的警报弹出。

我想做什么:

  • 没有什么:错误消息。

  • 有一封信:没有错误信息。

  • 我删除了这封信:错误信息。

  • 如果该字段是填充,但另一个函数:没有错误消息。

感谢您的帮助。

+0

无法检测场被一个函数填充,除非其他功能触发事件和事件的处理程序代码然后管理你想要的东西 – charlietfl

+0

如果'keydown'事件不适合你,你必须使用'bind/delegate/on'等jQuery事件来尝试'keyup/keypress'事件, 。它应该适用于其中的任何一个,因为我以前曾多次面对过您的问题。 – RGR

回答

4

您应该使用keyup事件,而不是​​- 关键领域里还没有更新,以便测试value在这一点上并没有给你正确的结果。

blur上也做同样的测试也不会有什么坏处,以便用户可以通过编辑菜单或拖动鼠标或其他方式改变字段。

而且,除非使用真的老版本的jQuery的使用.prop()方法,而不是.attr()设置禁用状态:

$('#location').on('keyup blur', function(event) { 
    $("#finalSearch").prop('disabled', this.value.length === 0); 
}); 
+0

非常感谢!作品! –

0

你几乎已经在那里了,不知道问题出在哪里;但是这个工作。

$('#location').on('keyup', function() { 
    console.log($(this).val().length); 
    if($(this).val().length == 0) { 
     $('#finalSearch').prop('disabled', true); 
    }else{ 
     $('#finalSearch').prop('disabled',false); 
    } 
});​ 

The jsFiddle

+0

解决方案是keyup。谢谢。 –

相关问题