2015-09-06 52 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

所有重要的類+複選框被選中。現在我有複選框被選中+全部重要。 –