【发布时间】:2020-01-24 12:31:57
【问题描述】:
这是检查带有 1 个标签的多个单选按钮的好方法吗?我有一个包含多个步骤的表格。最后一步显示了关于前面步骤的摘要,我需要从那里获取所有数据。有更好的选择吗?如何从输入字段中获取文本并将其插入摘要? JavaScript?
$('label').click(function() {
id = this.id.split('-');
if (id[0] === '1') {
id[0] = '2';
} else {
id[0] = '1';
}
$('#' + id[0] + '-' + id[1]).prop('checked', true);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="one">
<input type="radio" id="1-1" name="1-level">
<label for="1-1" id="1-1">1</label>
<input type="radio" id="1-2" name="1-level">
<label for="1-2" id="1-2">2</label>
</div>
<div class="two">
<input type="radio" id="2-1" name="2-level">
<label for="2-1" id="2-1">1</label>
<input type="radio" id="2-2" name="2-level">
<label for="2-2" id="2-2">2</label>
</div>
【问题讨论】:
-
这有什么意义?为什么不使用一个单选按钮来表示 1-1 和 1-2,因为选择一个也会选择另一个,使得两个单选基本相同。并且由于您不使用
value属性,因此 1-1 和 1-2 所代表的含义与它使用的单选按钮的数量无关。如果将value属性添加到所有输入元素,则只需使用new FormData( theFormElement )即可自动收集所有值。 -
@Shilly 正如我所说,我有一个多步骤表格,最后我需要一个摘要(最后一步)。所以我必须显示选择了哪个值(在我的示例中,第二类是“摘要”,在开始时不可见)。
-
啊,我明白了,您正在将选中的收音机“复制”到其他收音机。我个人更喜欢摘要不是输入元素,而只是在将值添加到输入之后的 FormData 的漂亮打印。但这使得这只是一个基于意见的问题。
-
@Shilly 我有同样的想法.. 但应该可以编辑输入。你觉得我的方案好不好?
-
什么文本,来自哪个输入字段?你的意思是以前收音机的标签吗?为什么您需要能够从摘要中编辑表单数据,而不是仅仅重定向到表单的那一部分进行调整?
标签: javascript jquery html forms input