확인란과 라디오 버튼의 읽기 전용 상태를 달성하는 자바 스크립트가 많은 방법을 생각해 냈습니다. 현재 버전의 Firefox, Opera, Safari, Chrome 및 현재 및 이전 버전의 IE (IE7까지)에 대해 테스트되었습니다.
요청한 장애인 용 부동산을 단순히 사용하지 않는 이유는 무엇입니까? 페이지를 인쇄 할 때 비활성화 된 입력 요소가 회색으로 나타납니다. 이를 구현 한 고객은 모든 요소가 동일한 색상으로 나오기를 원했습니다.
회사에서 일하면서 개발하면서 소스 코드를 게시 할 수 있는지 확실하지 않지만 개념을 공유 할 수는 있습니다.
onmousedown 이벤트를 사용하면 클릭 동작이 변경되기 전에 선택 상태를 읽을 수 있습니다. 따라서이 정보를 저장 한 다음 onclick 이벤트로 이러한 상태를 복원하십시오.
<input id="r1" type="radio" name="group1" value="r1" onmousedown="storeSelectedRadiosForThisGroup(this.name);" onclick="setSelectedStateForEachElementOfThisGroup(this.name);" checked="checked">Option 1</input>
<input id="r2" type="radio" name="group1" value="r2" onmousedown="storeSelectedRadiosForThisGroup(this.name);" onclick="setSelectedStateForEachElementOfThisGroup(this.name);">Option 2</input>
<input id="r3" type="radio" name="group1" value="r3" onmousedown="storeSelectedRadiosForThisGroup(this.name);" onclick="setSelectedStateForEachElementOfThisGroup(this.name);">Option 3</input>
<input id="c1" type="checkbox" name="group2" value="c1" onmousedown="storeSelectedRadiosForThisGroup(this.name);" onclick="setSelectedStateForEachElementOfThisGroup(this.name);" checked="checked">Option 1</input>
<input id="c2" type="checkbox" name="group2" value="c2" onmousedown="storeSelectedRadiosForThisGroup(this.name);" onclick="setSelectedStateForEachElementOfThisGroup(this.name);">Option 2</input>
<input id="c3" type="checkbox" name="group2" value="c3" onmousedown="storeSelectedRadiosForThisGroup(this.name);" onclick="setSelectedStateForEachElementOfThisGroup(this.name);" checked="checked">Option 3</input>
이것의 자바 스크립트 부분은 다음과 같이 작동합니다 (개념 만).
var selectionStore = new Object(); // keep the currently selected items' ids in a store
function storeSelectedRadiosForThisGroup(elementName) {
// get all the elements for this group
var radioOrSelectGroup = document.getElementsByName(elementName);
// iterate over the group to find the selected values and store the selected ids in the selectionStore
// ((radioOrSelectGroup[i].checked == true) tells you that)
// remember checkbox groups can have multiple checked items, so you you might need an array for the ids
...
}
function setSelectedStateForEachElementOfThisGroup(elementName) {
// iterate over the group and set the elements checked property to true/false, depending on whether their id is in the selectionStore
...
// make sure you return false here
return false;
}
입력 요소의 onclick 및 onmousedown 속성을 변경하여 라디오 버튼 / 확인란을 활성화 / 비활성화 할 수 있습니다.