【发布时间】:2016-02-11 15:13:31
【问题描述】:
我有一张产品选项表,每个tr 都是一个选项。默认选择一个,要选择另一个,必须在提交表单之前选中一个单选按钮。这很容易,但整个tr 必须是可点击的,并相应地选中单选按钮。
我认为我已经设法使用下面的脚本让它工作:
$('.product-options tr').click(function() {
$(this).find('td input[type=radio]').prop('checked', true);
});
除此之外我还需要在tr 中添加一个.selected 的类。我尝试使用以下代码,但我还需要检查另一个 tr 是否已经有一个 .selected 类并将其删除。
$('.product-options tr').click(function() {
$(this).find('td input[type=radio]').prop('checked', true);
$(this).toggleClass('selected', true);
});
显然,如果您单击相同的单选按钮,这只会切换类。这就是我有限的javascript知识失败的地方。有人可以帮忙吗?
最后,我还使用了一个名为 uniform.js 的插件,它允许选择/收音机/复选框完全可定制。由于它包装了一个 div,然后围绕无线电输入的一个跨度将一个 .checked 类添加到跨度以切换选中/未选中样式。仅当您直接单击输入时才会更改。因此,当单击 tr 的任何部分时,我还需要考虑与 tr.selected 类类似的脚本,自定义单选按钮也有一个更新的类。
对于 javascript 生成的收音机的参考标记是:
<div class="radio">
<span>
<input type="radio" name="" />
</span>
</div>
编辑:这是一个包含 uniform.js 的 CodePen,它应该可以更好地展示问题:
http://codepen.io/moy/pen/yeGRmO
谢谢,真的希望有人可以帮助解决这个问题。它似乎很简单......但是因为它是“分层的”,我有点迷路了! :)
【问题讨论】:
标签: javascript jquery html toggleclass uniform