Установите флажок, и строка таблицы не синхронизирована

#javascript #jquery #checkbox

#javascript #jquery #флажок

Вопрос:

Как я могу включить кнопку, когда пользователь устанавливает сам флажок? В настоящее время кнопка будет включена, когда пользователь нажимает на строку таблицы (интерактивная строка).

 var btn = $("#btn");    
btn.attr("disabled","disabled");

$("#table tbody").on("click",".clickable-row", function (e) {   
    if (e.target.type !== 'checkbox') {
        $(':checkbox', this).trigger('click');

        if($(':checkbox', this).is(":checked") == true){
            btn.removeAttr('disabled');
            $('form').append('<input type="hidden" name="chk" value="' $(':checkbox', this).val() '" />');              

        } else {
            btn.attr("disabled", !$(':checkbox', this).is(":checked"));
        }
    }
});
 

Комментарии:

1. Удалите if (e.target.type !== 'checkbox') условие

2. @Nicolas Filotto когда я удаляю эту часть, я вообще не могу установить флажок. Проверять можно только через интерактивную строку. Я хочу сделать обе работы

3. можете ли вы также поделиться html?

Ответ №1:

Попробуйте это:

 var btn = $("#btn");    
btn.attr("disabled","disabled");

$("#table tbody").on("click", function (e) {
    var thisCheckbox = $(this).find('input:checkbox');
    var thisTd = $(this).find('td');

    if(thisCheckbox.is(":checked") || thisTd.is(e.target)){
        if($(this).find('td').is(e.target))
        {
            thisCheckbox.prop('checked', true);
        }
        btn.removeAttr('disabled');
        $('form').append('<input type="hidden" name="chk" value="' $(':checkbox', this).val() '" />');  
    }else{
        if(thisTd.is(e.target))
        {
            thisCheckbox.prop('checked', false);
        }
        btn.attr("disabled", !$(':checkbox', this).is(":checked"));
    }

});
 

Комментарии:

1. это работает только тогда, когда я устанавливаю флажок (включаю кнопку). когда я нажимаю на строку таблицы, ничего не происходит (кнопка остается отключенной)

2. это не работает. когда я нажимаю флажок, он устанавливает все флажки, доступные в столбце