两次使用单选按钮名称

问题描述 投票:0回答:2

我有一个包含3个不同“页面”的多步骤表单。 1和2用于常规用户输入,第3页是1和2的摘要。第1页有一些单选按钮。我想再次在第3页中显示这些内容(它们应该是可编辑的)。我不想使用不同的名称,因为它们显示的名称完全相同...我该如何实现?这是用于更好理解的代码。

input {
  display: none;
}

label {
  width: 25px;
  height: 25px;
  display: inline-block;
  color: #fff;
  background-color: #000;
  text-align: center;
  line-height: 25px;
}

input:checked + label {
  background-color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="page-1">
  <input type="radio" id="1" name="a" value="1" checked>
  <label for="1">1</label>
  <input type="radio" id="2" name="a" value="2">
  <label for="2">2</label>
</div>
<div class="page-2">
  <!-- ... -->
</div>
<div class="page-3">
  <input type="radio" id="1" name="a" value="1">
  <label for="1">1</label>
  <input type="radio" id="2" name="a" value="2">
  <label for="2">2</label>
</div>
html css forms radio-button label
2个回答
0
投票

每次都使用不同的id=''

  <div class="page-3">
      <input type="radio" id="3" name="a" value="1">
      <label for="1">1</label>
      <input type="radio" id="4" name="a" value="2">
      <label for="2">2</label>
    </div>

0
投票

您不能使用相同的ID两次。同样,为了避免样式问题,请勿将数字用作属性值的第一个字母(旧规范)。

这是一个示例,允许一个以上的标签使用一个输入。标签将需要放在输入的一部分内才能样式化。

可能的工作示例:

input {
  display: none;
}

label {
  width: 25px;
  height: 25px;
  display: inline-block;
  color: #fff;
  background-color: #000;
  text-align: center;
  line-height: 25px;
}

input#a1:checked ~ div label[for="a1"],
input#a2:checked ~ div label[for="a2"]{
  background-color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <input type="radio" id="a1" name="a" value="1" checked>
  <input type="radio" id="a2" name="a" value="2">
<div class="page-1">
  <label for="a1">1</label>
  <label for="a2">2</label>
</div>

<div class="page-2">
  <!-- ... -->
</div>

<div class="page-3">
  <label for="a1">1</label>
  <label for="a2">2</label>
</div>
© www.soinside.com 2019 - 2024. All rights reserved.