0

如果输入为空,如何签入 jQuery?

我试过:

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

但是,即使我的领域没有任何内容,我也希望弹出警报。

我想做的事:

  • 什么都没有:错误消息。

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

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

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

感谢帮助。

4

2 回答 2

5

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

blur如果用户通过“编辑”菜单或拖放或其他方式更改字段,也可以进行相同的测试。

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

$('#location').on('keyup blur', function(event) {
   $("#finalSearch").prop('disabled', this.value.length === 0);
});
于 2012-12-17T01:21:48.657 回答
0

你几乎已经在那里了,不确定问题出在哪里;但这有效。

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

jsFiddle

于 2012-12-17T01:21:01.020 回答