document.getElementById('stroka').onclick = raz;
function raz() {
if($("#ch1").attr("checked") == 'checked') {
$('#ch1').removeAttr("checked");
} else {
$('#ch1').attr("checked","checked");
};
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="divTableRow" id="stroka" onclick="raz()">
<div class="divTableCell">
<label>
<input type="checkbox" class="checkbox2" id="ch1">
<span class="checkbox-custom2"></span>
</label>
</div>
<div class="divTableCell">27.04.2017</div>
<div class="divTableCell">28.04.2017</div>
<div class="divTableCell">118725-31521</div>
<div class="divTableCell">MOBIS/HYUNDAI/KIA</div>
<div class="divTableCell">ZA44BWD02ACA9601E</div>
<div class="divTableCell">ПЛЕНКА ЗАЩИТНАЯ БОКОВОЙ НАКЛАДНАЯ</div>
<div class="divTableCell">9 999</div>
<div class="divTableCell">1 256 878, 00</div>
</div>
Данный скрипт работает только 1 раз: если чекбокса нет, то по клику на строке id="stroka" он проставляется; если уже есть - снимается. Но второй раз уже не работает и чекбокс не выбирается совсем.
Что я делаю не так? Подскажите пожалуйста.
@АлексейШиманский прав дважды.
Во-первых, я убрал onclick="raz()" из <div class="divTableRow" id="stroka" onclick="raz()">.
Во-вторых, зачем добавлять аттрибуты самому, проверять их и тд., когда можно просто спросить .checked? И он тебе ответит, checked он или нет. И сюда же можно его засетать.
Итого:
document.getElementById('stroka').onclick = raz;
function raz() {
let checkBox = document.getElementById("ch1");
checkBox.checked = !checkBox.checked;
}
<div class="divTableRow" id="stroka">
<div class="divTableCell">
<label>
<input type="checkbox" class="checkbox2" id="ch1">
<span class="checkbox-custom2"></span>
</label>
</div>
<div class="divTableCell">27.04.2017</div>
<div class="divTableCell">28.04.2017</div>
<div class="divTableCell">118725-31521</div>
<div class="divTableCell">MOBIS/HYUNDAI/KIA</div>
<div class="divTableCell">ZA44BWD02ACA9601E</div>
<div class="divTableCell">ПЛЕНКА ЗАЩИТНАЯ БОКОВОЙ НАКЛАДНАЯ</div>
<div class="divTableCell">9 999</div>
<div class="divTableCell">1 256 878, 00</div>
</div>
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости