2013-08-07 2 views
1

간단한 해결책에 문제가 있어야하며 뭔가 놓친 것 같습니다.javascript 단일 라디오 버튼을 사용 중지합니다.

두 열의 라디오 버튼이 있는데 한 열의 라디오 버튼을 클릭하면 반대쪽 열에서 해당 라디오 버튼을 비활성화해야 선택할 수 없습니다. 그런 다음 다른 버튼이 선택되면 이전 버튼을 다시 활성화하고 새로운 반대 선택을 비활성화하십시오.

나는 모든 라디오 버튼에 고유 한 ID를 부여했습니다. first1, first2 등 1 열, second1, second2 등 2 열.

내가 다시 향한 후, 내가 1 시간 동안 온라인으로 검색 한 후 작동하지 않을 것으로 예상되는 방식은 jquery 방식이 아닌 것으로 밝혀졌습니다. 자바 스크립트로 가능합니까? 지금까지 있었는데, 내가 해제 방법 기본이야 알지만, 나는이 페이지를 했어 다른 문제 불탄있어 무엇

:의 사용자가 정의한 가정 해 봅시다

function disableForm(theform, theradio) { 
    //this was a start but does't save valid disabled fields 
    //it just enables everything 
    if (document.all || document.getElementById) { 
     for (i = 0; i < theform.length; i++) { 
     var formElement = theform.elements[i]; 
      if (true) { 
       formElement.disabled = false; 
      } 
     } 

    } 

    document.getElementById(theradio).onclick = function(){ 
     document.getElementById(theradio).disabled=true; 
    } 
} 
+0

다른 그룹을 정의 할 수 있습니까? first1 and second1, first2 and second2, ... 그래서 다른 하나를 선택하면 버튼이 항상 선택 취소됩니다. JavaScript를 통해 무언가를 비활성화 할 필요가 없습니다. – xmashallax

+1

바이크를 만드십시오 –

+0

@xmashallax 최대 2 개의 옵션을 선택할 수 있지만 동일하지는 않습니다. 나는 당신이 제안하는 방법을 따르고 있지 않습니다. – John

답변

3

당신의

function process(rb) { 

    //clearing previos disabled 
    for (i = 0; i < document.getElementsByName("Radio2").length; i++) { 
     document.getElementsByName("Radio2")[i].disabled = ''; 
    } 
    document.getElementById(rb.id.replace('Radio1','Radio2')).disabled='disabled'; 
} 

근무 예 : 목표는 간단한 스크립트에 의해 달성 될 수있다 그런

<table style="width: 100%;"> 
     <tr> 
      <td> 
       <input id="Radio1_1" type="radio" name="Radio1" onchange="process(this)"/><br /> 
       <input id="Radio1_2" type="radio" name="Radio1" onchange="process(this)"/><br /> 
       <input id="Radio1_3" type="radio" name="Radio1" onchange="process(this)"/><br /> 
       <input id="Radio1_4" type="radio" name="Radio1" onchange="process(this)"/><br /> 
       <input id="Radio1_5" type="radio" name="Radio1" onchange="process(this)"/> 
      </td> 
      <td> 
       <input id="Radio2_1" type="radio" name="Radio2" /><br /> 
       <input id="Radio2_2" type="radio" name="Radio2" /><br /> 
       <input id="Radio2_3" type="radio" name="Radio2" /><br /> 
       <input id="Radio2_4" type="radio" name="Radio2" /><br /> 
       <input id="Radio2_5" type="radio" name="Radio2" /> 

      </td> 

     </tr> 

    </table> 

로 라디오 http://jsfiddle.net/bbGDA/1/

+0

이긴하지만 오른쪽 열 버튼을 선택하면 해당 왼쪽 열 버튼이 비활성화되지 않습니다. – John

+0

같은 로직을 사용하되 반대의 대체 방법을 적용하십시오 (예 : 여러 옵션이 있습니다. 예를 들어'process2 (rb)'함수를 정의하고 그냥 "Radio2"와 "Radio1"을 바꿔서 오른쪽 열의 옵션에 붙이십시오. –

+0

그래, 그게 끝났어. 고마워요 ~Yuriy! – John

관련 문제