2013-12-14 3 views
0

ASP.Net을 사용하여 C#.CheckBox 상태 확인 - Javascript

저장 작업을 수행하기 전에 그리드의 최소한 하나의 체크 박스가 선택되었는지 확인하는 자바 스크립트 기능입니다. 페이지로드시 기본적으로 모든 상자가 선택됩니다.

문제점 : 사용자가 '저장'을 클릭하면 (확인란을 선택하지 않은 경우) 경고가 표시됩니다. 경고 내에서 확인을 클릭하면 페이지가 새로 고쳐지고 그리드 안의 텍스트 상자가 지워집니다. 또한 모든 체크 박스를 다시 확인하십시오.

경고를 표시하고 페이지를 새로 고치지 않으려면 체크 박스가 선택되어 있지 않아도 서버 측 코드가 시작되도록해야합니다.

JS :

<script type="text/javascript"> 

function CheckSelected() 
{ 
var elements = document.getElementById('<%=gvLeaves.ClientID%>'). 
       document.getElementById("INPUT"); 
var status=false; 
var chk; 
for(var i=0;i<elements.length;i++) 
{ 
    if(elements[i]!=null) 
    { 
    if(elements[i].id.indexof('chkLeaveType')>0) 
     { 
     chk=elements[i]; 
     if(chk.checked) 
      { 
      status=true; 
      break; 
      } 
     } 
    }   
} 
    if(status==true) 
    return true; 
    else 
    { 
     alert('None Selected'); 
     return false; 
    } 
} 
</script> 

ASPX

<asp:updatepanel runat="server" updatemode="conditional">  
<triggers>  
<asp:asyncpostback controldid="btnsave" eventname="click"/>  
</triggers>  
<contenttemplate>  
<asp:gridview id="gvleaves" runat="server">  
<columns>  
    <asp:templatefield>  
    <headertemplate>  
    <asp:checkbox id="chkheader" runat="server" checked="true" 
     onclick="SelectAll(this.id)"/>  
    Leave Type  
    </headertemplate>  
    <itemtemplate>  
     <asp:checkbox id="chkLeaveType" runat="server" checked="true"/>  
     <%#Eval("leavetype")%>  
    </itemtemplate>  
    </asp:templatefield> 
    <asp:templatefield> 
    <itemtemplate>  
     <asp:textbox id="txtdays" runat="server"/> 
    </itemtemplate> 
    </asp:templatefield>  
</columns>  
</asp:gridview>  
<asp:button id="btnSave" runat="server" 
onclientclick="CheckSelected();" onclick="btnsave_click"/>  
</contenttemplate>  
</asp:updatepanel> 

답변

1

CheckSelected는()가 false 값이 반환되는 경우 조치가 발생하지 않습니다, 참 또는 거짓 반환해야합니다. 그러면 모양이 달라집니다. onclientclick="return CheckSelected()"

+0

고맙습니다 ... – Ruby