我有一个包含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>
每次都使用不同的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>
您不能使用相同的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>