检查复选框状态-Javascript

Check For CheckBox Status - Javascript

本文关键字:-Javascript 状态 复选框 检查      更新时间:2023-09-26

使用ASP.Net,C#。

这是一个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>

CheckSelected()应该返回true或false,如果返回false值,则不会发生操作。所以它应该看起来像onclientclick="return CheckSelected()"