2014-03-19 33 views
0

如何仅使用java脚本实现从复选框列表中选中的一个复选框。如何仅实现一个复选框选择功能到Chekc框列表?

下面是脚本:

<script language="javascript" type="text/javascript"> 
var previousCheckId; 
    function toggle(chkBox) { 
     if (chkBox.checked) { 
       if (previousCheckId) { 
        document.getElementById(previousCheckId).checked = false; 
       } 
       previousCheckId = chkBox.getAttribute('id'); 
     } 
    } 
</script> 

这里是我的设计:

<tr> 
    <td class="BlackTextBold" align="right" height="25" width="32%"><div align="left"><strong> 
     Product :</strong><span class="top-txt"><span style="font-size: 12.0pt; font-family: Tahoma,sans-serif; color: red">*</span></span></div></td> 
    <td height="20" width="68%"> 
     <asp:CheckBoxList ID="chkLst" runat="server" Font-Bold="True" 
      RepeatDirection="Horizontal" Width="50%"> 
      <asp:ListItem onClick="toggle(this);" Value="EasyOFFICE">EasyOFFICE</asp:ListItem> 
      <asp:ListItem onClick="toggle(this);" Value="EasyVAT">EasyVAT</asp:ListItem> 
     </asp:CheckBoxList> 
    </td> 
    </tr> 
    <tr> 
    <td class="BlackTextBold" align="right" height="25" width="32%"><div align="left"><strong> 
     PC Type :</strong><span class="top-txt"><span style="font-size: 12.0pt; font-family: Tahoma,sans-serif; color: red">*</span></span></div></td> 
    <td height="20" width="68%"> 
     <asp:CheckBoxList ID="chkLst" runat="server" Font-Bold="True" 
      RepeatDirection="Horizontal" Width="30%"> 
      <asp:ListItem onClick="toggle(this);" Value="Server">Server</asp:ListItem> 
      <asp:ListItem onClick="toggle(this);" Value="LAN">LAN</asp:ListItem> 
     </asp:CheckBoxList> 
    </td> 
    </tr> 

但是该脚本正常工作与一个复选框列表,但是当我只是想同样的事情到其他复选框列表,然后它适用于4个。

+0

为什么又使用相同的清单?这段代码正在编译?至少更改第二个复选框列表的名称。 –

回答

0

这是什么单选按钮是...

,但如果你想继续使用复选框,基于jQuery的解决办法只能是目标在同一td

function toggle(chkBox) { 
    if (chkBox.checked) { 
     $(this).closest('td').find('input[type="checkbox"]:checked').not(this).prop('checked', false) 
    } 
} 
0

首先,由于CheckBoxList的名称相同,因此不会编译代码。 更改第二个复选框列表的名称,然后尝试运行脚本,因为脚本没有问题。

<tr> 
<td class="BlackTextBold" align="right" height="25" width="32%"><div align="left"><strong> 
    Product :</strong><span class="top-txt"><span style="font-size: 12.0pt; font-family: Tahoma,sans-serif; color: red">*</span></span></div></td> 
<td height="20" width="68%"> 
    <asp:CheckBoxList ID="chkLst" runat="server" Font-Bold="True" 
     RepeatDirection="Horizontal" Width="50%"> 
     <asp:ListItem onClick="toggle(this);" Value="EasyOFFICE">EasyOFFICE</asp:ListItem> 
     <asp:ListItem onClick="toggle(this);" Value="EasyVAT">EasyVAT</asp:ListItem> 
    </asp:CheckBoxList> 
</td> 
</tr> 
    <tr> 
<td class="BlackTextBold" align="right" height="25" width="32%"><div align="left"><strong> 
    PC Type :</strong><span class="top-txt"><span style="font-size: 12.0pt; font-family: Tahoma,sans-serif; color: red">*</span></span></div></td> 
<td height="20" width="68%"> 
    <asp:CheckBoxList ID="chkLst1" runat="server" Font-Bold="True" 
     RepeatDirection="Horizontal" Width="30%"> 
     <asp:ListItem onClick="toggle(this);" Value="Server">Server</asp:ListItem> 
     <asp:ListItem onClick="toggle(this);" Value="LAN">LAN</asp:ListItem> 
    </asp:CheckBoxList> 
</td> 

+0

好吧,我改变了它。但这里的问题是这个切换适用于所有4个复选框,所以我只能从这4个复选框中选中一个复选框。在这里我只想从chklst(1'st CheckBox)和其他只有一个从chklst1(2'nd CheckBox)复选框中选中一个复选框。 –

相关问题