如果输入为空,请使用jQuery检查

时间:2012-12-17 01:13:15

标签: jquery forms input

如果输入为空,我如何检查jQuery?

我试过了:

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

但是,即使我的领域里什么也没有,我想要提醒警报。

我想做什么:

  • 没有任何内容:错误消息。

  • 有一个字母:没有错误信息。

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

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

感谢您的帮助。

2 个答案:

答案 0 :(得分:5)

您应该使用keyup事件而不是keydown - 关键 down 该字段尚未更新,因此此时测试value不会不能给你正确的结果。

blur上进行相同的测试也没有什么坏处,以允许用户通过编辑菜单或拖放或其他任何内容更改字段。

此外,除非使用真正旧版本的jQuery,否则使用.prop()方法而不是.attr()来设置禁用状态:

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

答案 1 :(得分: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