Проблема с element.checked

157
14 июля 2017, 06:16

Здравствуйте. Столкнулся с проблемой проверки на то выбран ли элемент type radio. Мне нужно сделать чтобы если элемент выбран то галочка убиралась. Дело в том что проверка проходит как-то странно и как только я нажимаю на элемент галочка тут же убирается. Похоже на то что сначало элемент становится выбранным, а уже потом идет проверка. Что в моей проверке может быть не так? Алертом выводит что один элемент выбран (на который я нажимаю), а другой не выбран, но в проверке я поставил checked true и по логике он не должен проходить. Спасибо

if((target == form.elements.male[0] && form.elements.male[0].checked == 
true) || (target == form.elements.male[1] && form.elements.male[1].checked 
== true)) {
    alert(form.elements.male[0].checked + ' ' + 
form.elements.male[1].checked);
    target.checked = false;
}
Answer 1

Спасибо, сам ответил на свой вопрос когда свой же комментарий перечитал) оказывается функция которая ставить checked на элемент проходит по onmousedown(как только кнопка мыши опустилась), а onclick(когда кнопка мыши опустилась и поднялась), следовательно сначала ставится галка, а потом начинается проверка её наличия, по этому нам надо ставить такую проверку на onmousedown:

document.onmousedown = function(e) {
let target = e.target;
if(target == "Нужный нам элемент")
    target.checked = false;
}
}

либо явно на элемент применять:

element.onmousedown = function(){
if(element.checked) element.checked = false;
}
READ ALSO
Как убрать название сайта из блока “Поделиться”? [требует правки]

Как убрать название сайта из блока “Поделиться”? [требует правки]

Как убрать название сайта из блока "Поделиться"?

182
сравнение строк “2” > “15” = true

сравнение строк “2” > “15” = true

Прочитал мануал по поводу строк: Посимвольное сравнение

189
Как правильно вызвать функцию при ajax?

Как правильно вызвать функцию при ajax?

При клике на блок с классом main-block ajaxом добавляются элементыФункция, которая отрабатывает при клике на элемент, который добавляется ajax

170
Проверка заполненности поля JS

Проверка заполненности поля JS

Необходимо проверить заполненность полей и запретить отправку формы, если есть пустые

237