2011-08-08 2 views
0

의 결과가 달라집니다. 라디오 버튼의 텍스트를 클릭하면 OnClick이 실행되고 현재 선택된 버튼이 CHECKED로 표시됩니다. 라디오 버튼을 직접 클릭하면 발동되어 CHECKED로 방금 클릭 한 버튼이 표시됩니다. 나는 텍스트 나 버튼이 똑같이 작동 할 것으로 기대한다. 이 차이를 인식 할 수있는 방법이 있습니까? 여기 라디오 버튼 목록 OnClick이 텍스트 영역에서 발생하여 Check

내 radion 버튼 목록입니다

Select Mode: 
<asp:RadioButtonList ID="RadBtnMode" runat="server" AutoPostBack="True" 
    BackColor="#CCCCFF" BorderStyle="Groove" BorderWidth="3px" Width="130px" 
    Height="16px" RepeatDirection="Horizontal" cssClass="radioWrap"> 
    <asp:ListItem Enabled="False" Selected="True">Add</asp:ListItem> 
    <asp:ListItem Enabled="False" Value="Search">Search</asp:ListItem> 
    <asp:ListItem Enabled="False">Edit</asp:ListItem> 
</asp:RadioButtonList> 

페이지로드하는 동안, 나는 사용자에 따라 버튼을 활성화하고 나는이 확인 상자 설정 :

RadBtnMode.Attributes.Add("onclick", "return ConfirmAdd()") 

이 자바

를 호출
<script type="text/javascript" language="javascript"> 
function ConfirmAdd() { 
    var radBtn = document.getElementsByName("RadBtnMode"); 
    if (radBtn[1].checked) { 
     return confirm('Switching to Add Mode will clear all data!\rAre you sure you?'); 
     } 
    } 
</script> 

라디오 버튼의 원을 클릭하면 원하는대로 작동하고 경고 메시지가 표시됩니다. 내가 추가 모드로 전환하기 때문에 화면을 지울 것입니다. '검색'버튼의 텍스트를 클릭하고 '추가'가 현재 선택 인 경우 '추가'가 선택되어 있다고 간주하고 경고를 표시합니다. 그런 다음 두 번째로 작동하고 예상대로 작동합니다. 출력 HTML을 포함

편집

그것은 주요 문제는 서버 측 코드 (그는 "추가 모드"를 입력하고자하는 경우 확인이 실제로 사용자에게) 함께 나에게 보이는
<table id="RadBtnMode" class="radioWrap" onclick="return ConfirmAdd()" border="0" style="background-color:#CCCCFF;border-width:3px;border-style:Groove;height:16px;width:130px;"> 
<tr> 
<td><input id="RadBtnMode_0" type="radio" name="RadBtnMode" value="Add" checked="checked" /><label for="RadBtnMode_0">Add</label></td> 
<td><input id="RadBtnMode_1" type="radio" name="RadBtnMode" value="Search" onclick="javascript:setTimeout('__doPostBack(\'RadBtnMode$1\',\'\')', 0)" /><label for="RadBtnMode_1">Search</label></td> 
<td><span disabled="disabled"> 
<input id="RadBtnMode_2" type="radio" name="RadBtnMode" value="Edit" disabled="disabled" onclick="javascript:setTimeout('__doPostBack(\'RadBtnMode$2\',\'\')', 0)" /><label for="RadBtnMode_2">Edit</label></span></td> 
</tr> 
</table> 
+0

C#이 아닌 OUTPUT (HTML)을 사용하십시오. –

답변

0

. 또한 테이블 자체에 onclick 이벤트를 첨부 할 때 문제가 될 수 있습니다. 이로 인해 하나의 라디오 버튼에서 다음 라디오 버튼으로 변경하기 전에 짝수 화가 발생할 수 있습니다.

두 라디오 버튼 사이를 전환 한 결과 관련 부분을 포함 할 수 있습니다.

+0

예, "모드 추가"에 대한 확인입니다. 사용자가 [취소]를 클릭하면 SelectedIndexChanged 이벤트가 발생하지 않습니다. 그것이 바람직한 행동입니다. 텍스트를 클릭하면 변경이 완료되기 전에 발사됩니다. 이것이 문제입니다. 나는 onClick 이벤트를 첨부 할 것이 무엇인지 모르겠다. 그래서 당신이 말하는 "관련 부분"을 이해하지 못한다. –