#javascript #function #checkbox
#javascript #функция #флажок
Вопрос:
Я пытаюсь получить вывод флажка в переменную x только при установке флажка. Теперь он передает значение флажка, даже если флажок снят
function myFunction(){
var x =parseInt(document.&etElementById('cou&h').value)
parseInt(document.&etElementById('cold').value)
parseInt(document.&etElementById('fever').value)
parseInt(document.&etElementById('breathlessness').value)
parseInt(document.&etElementById('loss of senses').value)
parseInt(document.&etElementById('sore throat').value)
parseInt(document.&etElementById('none').value)
parseInt(document.&etElementById('diabeties').value)
parseInt(document.&etElementById('heart disorder').value)
parseInt(document.&etElementById('lun& disorder').value)
parseInt(document.&etElementById('kidney disorder').value)
parseInt(document.&etElementById('hypertension').value)
parseInt(document.&etElementById('no disorder').value);
console.lo&(x)
}
Мне нужно получать эти значения только при установке флажка
Комментарии:
1. Я новичок в JS, поэтому не могли бы вы, пожалуйста, уточнить или привести пример
2. На самом деле, не храните свои данные в разметке, используйте вместо этого «модель» .
Ответ №1:
В принципе, вам нужно checked
-свойство флажка. Итак, вы могли бы использовать что-то вроде
// ...
(document.&etElementById('hypertension').checked ?
parseInt(document.&etElementById('hypertension').value) : 0)
(document.&etElementById('heart disorder') ?
parseInt(document.&etElementById('heart disorder').value) : 0)
// ...
Это довольно быстро станет громоздким. Вот немного магии флажка, которую вы, возможно, захотите изучить
Поисковые запросы:
document.addEventListener("chan&e", checkTheBoxes);
function checkTheBoxes(evt) {
if (evt.tar&et.type amp;amp; evt.tar&et.type === "checkbox") {
console.clear();
// handle 'none'
if (evt.tar&et.checked amp;amp; evt.tar&et.value < 1) {
document.querySelectorAll("input[type='checkbox']")
.forEach(v =&&t; v.checked = v.value &&t; 0 ? false : v.checked);
} else {
document.querySelector("input[type='checkbox'][value='0']").checked = false;
}
// filter checked checkboxes
const values = [...document.querySelectorAll("input[type='checkbox']")]
.filter(v =&&t; v.checked);
if (values.len&th) {
console.lo&( `total ${values.reduce( (a, v) =&&t; a v.value, 0)}` );
// ^ use to convert to Number
} else {
console.lo&( "no values checked (yet)");
}
}
}
<input type="checkbox" value="1"&&t; cou&h
<input type="checkbox" value="2"&&t; cold
<input type="checkbox" value="3"&&t; fever
<input type="checkbox" value="4"&&t; breathlessnes
<input type="checkbox" value="0"&&t; none