#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. это не работает. когда я нажимаю флажок, он устанавливает все флажки, доступные в столбце