확인란 그룹에 대한 작업을 수행하는 자바 스크립트 루틴이 있지만 사용자가 확인란을 선택했는지 또는 선택 취소했는지에 따라 클릭 된 확인란을 선택 또는 선택 취소로 설정하고 싶습니다.
불행히도, 체크 또는 체크 해제 여부를 확인할 때마다 사용자가 항상 확인란을 선택하고 있음을 나타내는 "켜짐"이 반환됩니다! 어떤 도움을 주시면 감사하겠습니다. 자바 스크립트도 포함했습니다.
// Uncheck all the checkboxs with the same Tax Credit
for (i=0; i<arrChecks.length; i++)
{
var attribute = arrChecks[i].getAttribute("xid")
if (attribute == elementName)
{
// if the current state is checked, unchecked and vice-versa
if (arrChecks[i].value == "on") // <-- This is always returning true, even if the box is being unchecked
{
arrChecks[i].checked = 1;
} else {
arrChecks[i].checked = 0;
}
} else {
arrChecks[i].checked = 0;
}
}
체크박스 요소의 체크된 속성에 대해 평가해야 합니다.
for (i=0; i<arrChecks.length; i++)
{
var attribute = arrChecks[i].getAttribute("xid")
if (attribute == elementName)
{
// if the current state is checked, unchecked and vice-versa
if (arrChecks[i].checked)
{
arrChecks[i].checked = false;
} else {
arrChecks[i].checked = true;
}
} else {
arrChecks[i].checked = false;
}
}
'체크박스'의 '값' 속성은 사용자가 설정한 값입니다:
<input type='checkbox' name='test' value='1'>
따라서 누군가 해당 확인란을 선택하면 서버는 값
이 1
인 test
라는 이름의 변수를 수신합니다. 여러분이 확인하려는 것은 확인란의 값
(확인 여부에 관계없이 절대 변경되지 않음)이 아니라 확인란의 체크됨
상태입니다.
따라서 이 코드를 바꾸면
if (arrChecks[i].value == "on")
{
arrChecks[i].checked = 1;
} else {
arrChecks[i].checked = 0;
}
로 바뀝니다:
arrChecks[i].checked = !arrChecks[i].checked;
작동합니다. 이를 위해 0
과 1
대신 true
와 false
를 사용해야 합니다.
function enter_comment(super_id) {
if (!(document.getElementById(super_id).checked)) {
alert('selected checkbox is unchecked now')
} else {
alert('selected checkbox is checked now');
}
}
<input type="checkbox"name="a"id="1"value="1"onclick="enter_comment(다.값)"/>
<input type="checkbox"name="b"id="2"value="2"onclick="enter_comment(다.값)"/>
문제가 무엇인지 잘 모르겠지만 이 방법으로 해결할 수 있을 것 같습니다.
for (i=0; i<arrChecks.length; i++)
{
var attribute = arrChecks[i].getAttribute("xid")
if (attribute == elementName)
{
if (arrChecks[i].checked == 0)
{
arrChecks[i].checked = 1;
} else {
arrChecks[i].checked = 0;
}
} else {
arrChecks[i].checked = 0;
}
}