【问题标题】:HTML Checkbox groupingHTML 复选框分组
【发布时间】:2010-05-19 00:53:34
【问题描述】:

通常 HTML 复选框是根据名称分组的。是否可以对名称以外的复选框进行分组?

谢谢!

【问题讨论】:

  • 复选框是相互独立的,也许你的意思是收音机?那么没有唯一的名字。
  • @Galen:复选框是多选,单选按钮是单选。使用相同名称的好处是,您只需一次调用即可在服务器端的数组中直接所有 选择值。这样您就不需要在多次调用中将它们全部抓取,然后一一确定它是否已填充(即是否为空/空)。
  • @balusC:我知道区别。我不确定提问者是否知道,因为他的问题。希望他能澄清
  • 这个分组的目的是什么?很明显,您不希望复选框值作为数组链接(分组)在一起。我能想到的唯一另一种“分组”是出于布局目的在页面上进行分组,但复选框的名称不会影响它在页面上的放置位置。 TL;DR:请更具体。

标签: html checkbox grouping


【解决方案1】:

不在 HTML 中。但是您可以在服务器端编写一些代码逻辑,根据某些条件对它们进行分组,例如参数名称甚至参数值中的公共前缀或后缀。

但是,这只是笨拙的。通过仅按名称对它们进行分组的能力,您可以从 HTML 中获益。如果您对此有疑问,则需要在其他地方进行修复,可能使用元素 ID(表示文档树中的唯一性)或元素样式类(表示文档树中的常见含义)。

【讨论】:

    【解决方案2】:

    如果您使用的是 ASP.NET,则可以使用 AjaxToolkit 中的 MutuallyExclusiveCheckBoxExtender 将复选框组合在一起。 它将它们分组在一起,以便一次只能选中组中的 1 个复选框,就像单选按钮组一样。

    http://www.asp.net/ajax/tutorials/creating-mutually-exclusive-checkboxes-cs

    【讨论】:

      【解决方案3】:

      您可以尝试按照自己的方式对添加的项目进行排序。 在下面的 ASP.Net Checkboxlist 示例中,我使用比较器对项目进行降序排序(以您的方式更改):

       Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
              Dim allChk As New ArrayList(Me.CheckBoxList1.Items)
              allChk.Sort(New SortComparer(False))
              Me.CheckBoxList1.Items.Clear()
              For Each item As ListItem In allChk
                  Me.CheckBoxList1.Items.Add(item)
              Next
          End Sub
      
          Public Class SortComparer
              Implements IComparer
              Private ascending As Boolean
      
              Public Sub New(ByVal asc As Boolean)
                  Me.ascending = asc
              End Sub
      
              Public Function [Compare](ByVal x As Object, ByVal y As Object) As Integer Implements IComparer.Compare
                  Return x.ToString.CompareTo(y.ToString) * DirectCast(IIf(Me.ascending, 1, -1), Int32)
              End Function
          End Class
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-23
        • 1970-01-01
        • 2017-07-12
        • 1970-01-01
        • 1970-01-01
        • 2014-09-12
        相关资源
        最近更新 更多