jQuery:按钮启用不起作用

时间:2012-06-30 00:44:00

标签: jquery

我的jsfiddle在这里 - http://jsfiddle.net/hhimanshu/HVRLA/

需要
- 一旦输入文本,"创建"按钮应启用
- 如果没有文本(文本长度= 0),"创建"应该再次禁用按钮

更新

建议的解决方案适用于解决方案,但它不能与我在下拉列表中使用表单一起使用。这是小提琴 - http://jsfiddle.net/hhimanshu/ukYek/

3 个答案:

答案 0 :(得分:3)

看起来你没有正确选择按钮,如果输入中没有字符,你忘了放else使其再次禁用(即用户退回所有文本,即他们输入)。这有效:

$(function(){
    var input = $('#new-list :input');
    $(input).keyup(function(){
      //alert($(input).val().length);                
        if ($(input).val().length > 0) {
            //alert($(input).val().length);
            $('#new-list button[type="submit"]').removeAttr('disabled');
        }
        else {
            $('#new-list button[type="submit"]').attr('disabled',true);
        }
    });
});

jsFiddle:http://jsfiddle.net/HVRLA/2/

答案 1 :(得分:0)

另一种解决方案:http://jsfiddle.net/HVRLA/5/

修改

正如你在下面的评论中所说,http://jsfiddle.net/hhimanshu/ukYek/小提琴无效。 输入选择器出现问题:

$(function(){
    var input = $('#new-playlist :input');
    $(input).live('keyup',function(){
      //alert($(input).val().length);                
        if ($(input).val().length > 0) {
            //alert($(input).val().length);
            $('#create-playlist-button').removeAttr('disabled');
        }
        else {
            $('#create-playlist-button').attr('disabled',true);
        }
    });
});​

我认为这是你代码中的问题 - 因为你的html中没有new-list id

 var input = $('#new-list :input');

所以我把它改成了这个:

var input = $('#new-playlist :input');

以下是小提琴链接:http://jsfiddle.net/ukYek/3/

答案 2 :(得分:0)

一个工作示例:

$(function(){
    var input = $('#new-playlist :input');
    input.live('keyup',function(){   
            $('#create-playlist-button').attr('disabled',input.val().length==0);
     });
});​