2009-12-04 3 views
9

`checkbox.checked = false`를 설정해도 HTML 속성을 지우지 않아야합니까?

여기에 내 HTML이있다 :

<input id="test" type="checkbox" checked=""> 

다음은 방화범 발췌 부분이다.

>>> test 
<input id="test" type="checkbox" checked=""> 

>>> test.checked = false 
false 

>>> test 
<input id="test" type="checkbox" checked=""> 

음 ... 나는 뭔가를 놓치고 있는가?

<input id="test" type="checkbox"> 

UI와 마찬가지로 checked = false 행을 실행하면 확인란의 선택이 실제로 해제됩니다.

어쨌든, 이에 대한 합법적 인 설명이있는 경우 checked = false이 아닌 경우 자바 스크립트에서 체크 박스를 선택 취소하는 적절한 방법은 무엇입니까?

+2

데이터가 서버에 도착하고 UI가 예상대로 작동하는 한 Firebug에서 말하는 내용에 신경 쓰지 않아도됩니다. –

+0

이것은 제가 말하고자하는 것을 보여주기위한 것입니다. 진짜 문제는 내가 체크 박스가 체크되었는지 아닌지에 따라 효과를 가지기를 원하는 CSS가 있고,'.checked'를 설정할 때가 아니라 체크 박스를 클릭했을 때만 그것의 일을 수행한다는 것입니다. – Kev

답변

23

input type="text"value의 속성과 input type="checkbox", radiooptionchecked 또는 selected 특성 하지 전류치 사용자 또는 스크립트가 설정 한 양식 필드의 초기 값에 해당한다. 따라서 checked 속성을 변경해도 속성 값이 변경되지 않고 checked 속성을 설정해도 양식과 함께 제출할 실제 표시 값은 변경되지 않습니다.

속성은 checked 속성이 아닌 defaultCheckedDOM property에 해당합니다. 마찬가지로 value="..." 속성은 defaultValue에 해당합니다.

(IE 때문에 IE가 속성과 속성의 차이를 모르고 여기 개는 거기에 있습니다.)

+0

'value' 속성에 대해서는 언급 한 적이 없습니다. 내 테스트 확인란도 가지고 있지 않습니다. 그래서 첫 번째 단락이 어떻게 적용되는지 모르겠지만 defaultChecked 속성이 핵심이었습니다. 감사! – Kev

+0

수정되었습니다. 다시 한 번 감사드립니다. – Kev

+0

배경 : checked/defaultChecked는 checkbox에 대한 value/defaultValue의 특별한 경우입니다 (옵션의 경우/defaultSelected와 유사 함). – bobince

-3

checked = '' 나는 정확하다고 생각합니다. checked = false을 수행하고 이에 상응하는 작업을 수행 할 때 브라우저가 친숙 해지려고합니다. checked = ''.

+2

시도해보십시오. 결과를 바꾸지 않는 것 같습니다. 또한 https://developer.mozilla.org/en/XUL/checkbox에 따라 checked 속성은 부울 유형입니다. – Kev

+0

아마도 혼란스러워 할 것입니다. 예상대로 작동하지 않는 것이 있습니까? –

+0

죄송합니다. 나는 그 질문을 표현하려고 노력했습니다. '.checked' 속성을 설정하면 HTML 속성에 영향을주게됩니다 (특히 UI에 영향을 미치기 때문에).하지만 HTML 속성은 초기 설정에 관계없이 변경되지 않습니다. 이것은 꽤 일치하지 않는 것 같습니다. – Kev

-2
당신은 styleHTML 업데이트하는 방법과 유사하게 값 정보를 표시하는 방화범을 기대 할 수있다

검사 창. 그러나 input, select, optiontextarea은 같은 방식으로 동작하지 않으며 값은이 창에서 업데이트되지 않으며 항상 원래 값 (페이지 렌더링 시간의 값)을 표시합니다. UI가 업데이트되고 있다면 올바르게 작동하는지 알 수 있습니다.

+0

이것은 사실이 아닙니다. 값 속성이없는 HTML 요소'a'로 직접 시도해보십시오 -'a','a.value = 7' 및'a' 행을 다시 실행하십시오. – Kev

+0

죄송합니다, 내가 말한 것은 여전히 ​​유효하지만,'a'는 HTML 입력 요소를 가리키는 JavaScript 변수라는 것을 분명히해야합니다. 마치 앵커 태그를 의미하는 것처럼 보입니다. – Kev

+0

그것은 그 길을 가로 질러 왔지만 더 이상 필요가 없으므로 그 주석을 삭제했습니다. 그러나 첫 번째 주석에서 설명하려고하는 시나리오를 이해하지 못합니다. 특히 "and'a' again" –

관련 문제