2012-07-21 2 views
1

이전에 질문을 받았지만 내 시나리오에서 작동하지 않습니다.jquery - asp.net radiobuttonlist의 특정 항목 활성화

<asp:RadioButtonList ID="rblSlots" runat="server" ViewStateMode="Disabled"> 
    <asp:ListItem Value="30" enabled="false">30 Minutes</asp:ListItem> 
    <asp:ListItem Value="60" enabled="false">1 Hour</asp:ListItem> 
    <asp:ListItem Value="90" enabled="false">1 1/2 Hours</asp:ListItem> 
    <asp:ListItem Value="120" enabled="false">2 Hours</asp:ListItem> 
    <asp:ListItem Value="150" enabled="false">2 1/2 Hours</asp:ListItem> 
    <asp:ListItem Value="180" enabled="false">3 Hours</asp:ListItem> 
    </asp:RadioButtonList> 

물론 렌더링과 같이 : 내가 잡아 아약스 게시물을 내 양식 오프너 대화 상자에서

<table id="rblSlots"> 
    <tr> 
    <td><span disabled="disabled"><input id="rblSlots_0" type="radio" name="rblSlots" value="30" disabled="disabled" /><label for="rblSlots_0">30 Minutes</label></span></td> 
    </tr><tr> 
    <td><span disabled="disabled"><input id="rblSlots_1" type="radio" name="rblSlots" value="60" disabled="disabled" /><label for="rblSlots_1">1 Hour</label></span></td> 
    </tr><tr> 
    <td><span disabled="disabled"><input id="rblSlots_2" type="radio" name="rblSlots" value="90" disabled="disabled" /><label for="rblSlots_2">1 1/2 Hours</label></span></td> 
    </tr><tr> 
    <td><span disabled="disabled"><input id="rblSlots_3" type="radio" name="rblSlots" value="120" disabled="disabled" /><label for="rblSlots_3">2 Hours</label></span></td> 
    </tr><tr> 
    <td><span disabled="disabled"><input id="rblSlots_4" type="radio" name="rblSlots" value="150" disabled="disabled" /><label for="rblSlots_4">2 1/2 Hours</label></span></td> 
    </tr><tr> 
    ...etc... 

나는 정적 값으로 radiobuttonlist를 포함하는 JQuery와 UI를 모달 폼이 그 중 일부 webservice에서 다음 javascipt 'timespan'중 일부 vaues, 디버깅을위한 정적 변수에 timespan 설정 한, < = timespan있는 라디오 단추를 사용하려면 싶습니다.

var strTS = "30,60,90,120,150,180"; 
    var aryTS = strTS.split(","); 
    var timespan = 120; 

    for (i = 0; i <= 5; i++) { 

     if ($('#rblSlots [value=' + aryTS[i] + ']').val() <= timespan) { 

      $('#rblSlots [value=' + aryTS[i] + ']').removeAttr("disabled"); 

     } 
    } 

    $("#appointment-form").dialog("open"); 
    return false; 

답변

1

당신이 prop 방법을 사용할 수 있습니다 IE와 파이어 폭스의 캐시를 제거한 후

$('#rblSlots input[value=' + timespan + ']').prop('disabled', false) 

DEMO

+0

에서

for (i = 0; i <= 5; i++) { if (aryTS[i] <= timespan) { $(".Slot_" + aryTS[i]).show(); } } 

작품 잘. 나는 시도했다 .prop ('disabled', false) 너무, 내 페이지에서 다른 모달 폼에있는 다른 텍스트 상자 요소를 사용하여 그냥 잘 removeAttr 사용하여 있습니다. 나는 jQuery 1.6.2를 사용하고있다. 위의 for..loop에 경고를 추가하면 입력 한 'input'태그가 아무런 차이가 없습니다. 4 개의 경고 (30, 60, 90, 120)가 표시됩니다. – user1457613

0

를, 그것은 위의 코드는 실제로 파이어 폭스에서 작동 않는 것으로 듯했으나, 일부 IE에없는 이유. 그래서 나는 어쨌든 더 심미적 인 표정을주는 방법을 위해이 방법을 버렸다.

테이블의 라디오 버튼 용 RadioButtonList를 취소했습니다.
고유 한 클래스 이름과 스타일을 지정하십시오. 'display : none;' 라디오가 들어있는 열에. 및 내 자바 스크립트 : eithe를 작동하지 않는 IE와 파이어 폭스

관련 문제