2015-09-06 54 views
4

我有这Fiddle和我使脚本工作时,首先检查复选框,并在输入插入文本,但如果我尝试插入文本第一个按钮不会启用它自我。有人可以看看那个小提琴吗?这是我的脚本取决于输入文本的禁用/启用按钮

$('.checkset label').on('change', function() { 
var reqlength = $('.important').length; 
console.log(reqlength); 
var value = $('.important').filter(function() { 
    return this.value != ''; 
}); 


if ($('.checkset label').hasClass("checked")) { 
    if (value.length >= 0 && (value.length !== reqlength)) { 
     //alert('Please fill out all required fields.'); 
     $('#reg').prop('disabled', true); 
     $('#reg').addClass('inactive'); 
    } else { 
     //alert('Everything has a value.'); 
     $('#reg').prop('disabled', false); 
     $('#reg').removeClass('inactive'); 
    } 
} else { 
    $('#reg').prop('disabled', true); 
    $('#reg').addClass('inactive'); 
} 
}); 
    $(".important").on('change', function() { 
    $('.checkset label').change(); 
}); 

回答

1

尝试为label元素置换input元素在change活动,利用.toggleClass()设置.checked类在上.checkset label如果所有.importantinput元素都,不重视

$(".checkset").click(function(){ 
    $(this).find("label").toggleClass("checked"); 
}); 
var res; 
var inputs = $(".important, .checkset input"); 
inputs.on("input change", function() { 
    res = inputs.get().every(function(el) { 

    return $(el).is("[type=checkbox]") ? el.checked : el.value.length !== 0 
    }); 
    $("#reg").prop("disabled", !res) 
    .toggleClass("inactive", !res) 
}) 

的jsfiddle http://jsfiddle.net/r9rsddhk/15/

+0

仍然工作相同。当插入文本并选中复选框时,我需要脚本启用按钮。现在脚本只在首先选中复选框的情况下才起作用。 –

+0

@DejanJankov是否要求所有输入元素在启用按钮之前都有一个值? – guest271314

+0

所有重要的类+复选框被选中。现在我有复选框被选中+全部重要。 –