代码之家  ›  专栏  ›  技术社区  ›  t3ax

为什么我可以选中多个单选按钮?

  •  6
  • t3ax  · 技术社区  · 8 年前

    我有一个带有单选按钮的HTML表单,可以选择多个,但为什么?我情不自禁。

    这是我的HTML:

    <input type="radio" name="nameA" id="nameA" value="nameA">
    <label for="nameA">Choice A</label>
    <input type="radio" name="nameB" id="nameB" value="nameB">
    <label for="nameB">Choice B</label>
    

    对于任何发现这个问题的人来说:解决方法就是给他们取相同的名字

    <input type="radio" name="sameName" id="nameA" value="nameA">
    <label for="nameA">Choice A</label>
    <input type="radio" name="sameName" id="nameB" value="nameB">
    <label for="nameB">Choice B</label>
    
    2 回复  |  直到 8 年前
        1
  •  6
  •   Quentin    8 年前

    所有共享相同名称且为相同窗体控件的单选按钮都是组的一部分。

    一个组中只能选中一个单选按钮。

    您有两个名称不同的单选按钮。这意味着您有两个单选组,每个组包含一个单选按钮。

    如果您只想选择其中一个,则需要将它们放在同一组中(通过让它们共享一个名称)。

    (它们应该仍然具有唯一的ID(这样您就可以给每个ID添加一个标签)和值(这是您在表单提交给服务器时确定检查了哪个ID的方式))。

    <form>
      <fieldset>
        <legend>Thing that is being chosen</legend>
    
        <input type="radio" name="name" id="nameA" value="nameA">
        <label for="nameA">Choice A</label>
    
        <input type="radio" name="name" id="nameB" value="nameB">
        <label for="nameB">Choice B</label>
    
      </fieldset>
    </form>
        2
  •  2
  •   Anas    8 年前

    无论何时创建单选按钮(目的是 确保用户只能选择1个选项),请确保 使name属性的值相同

    请按以下方式更新代码:

    <input type="radio" name="sameName" id="nameA" value="nameA">
    <label for="nameA">Choice A</label>
    <input type="radio" name="sameName" id="nameB" value="nameB">
    <label for="nameB">Choice B</label>