Jquery在按键时禁用/启用

Jquery在按键时禁用/启用,jquery,Jquery,我一直试图在表单上添加一个小jquery功能,但似乎无法正常运行: $("#progress-reg").keypress(function(event){ var n = $('#progress-reg').length; $('#progress-next').prop("disabled", (n < 1) ? true : false); }); $(“#进度记录”).按键(功能(事件){ 变量n=$(“#进度记录”)。长度; $(“#下一步进展”)

我一直试图在表单上添加一个小jquery功能,但似乎无法正常运行:

$("#progress-reg").keypress(function(event){
       var n = $('#progress-reg').length;
       $('#progress-next').prop("disabled", (n < 1) ? true : false);
});
$(“#进度记录”).按键(功能(事件){
变量n=$(“#进度记录”)。长度;
$(“#下一步进展”).prop(“已禁用”(n<1)?true:false);
});
这个想法是,如果用户开始在
#progress reg
中输入,它将启用
#progress next
按钮(工作正常),但如果用户删除了#progress reg的内容,我希望它恢复为禁用按钮,但上面的代码似乎没有这样做

在发布之前,我确实在这里搜索过,但什么也看不到


谢谢

您应该检查
值的长度
属性

$("#progress-reg").keypress(function(event){
       $('#progress-next').prop("disabled", this.value.length == 0);
});

另外,我对代码进行了一些修改,使其更短。

如果n<1,请使用禁用的移除道具

$(“#进度记录”).keyup(功能(事件){
var n=$(this).val().length;
如果(n<1)$(“#下一步进行”).removeProp(“禁用”);
else if($('progress next').prop(“disabled”)==false)$('progress next').prop(“disabled”,true);
});
您可以使用
。在('input',…
事件上,它与复制/粘贴一起工作。使用
val()
方法获取内容,然后添加或删除按钮的
禁用属性

$(“#下一步进度”).prop(“已禁用”,true)
//使用复制粘贴
$(“#进度记录”)。关于('输入',函数(事件){
var n=$(this).val().length;
$(“#下一步进度”).prop(“已禁用”,n<1)
});

好的
  • 您应该检查输入中值的长度,而不是输入本身
  • 您应该绑定
    keyup
    ,而不是
    keypress
  • $(“#进度记录”)。关于(“键控”,函数(){
    var n=this.value.length;
    $(“#下一步进展”).prop(“已禁用”,n<1?真:假);
    });
    
    
    接下来
    谢谢Sebo,我也试过了,但在endWell中使用了较短的代码。我建议您测试它是否已经禁用,但不是必须的
    $("#progress-reg").keyup(function(event){
           var n = $(this).val().length;
           if (n < 1) $('#progress-next').removeProp("disabled");
           else if ($('#progress-next').prop("disabled") == false) $('#progress-next').prop("disabled",true);
    
    });