【发布时间】:2016-09-25 00:36:27
【问题描述】:
我在这里找到了这个脚本,它几乎可以满足我的需要(找出是否选中了 div 中的一个单选按钮),尽管它会为每个单选按钮提醒我,如果其中一个被选中,我只需要一个警报。
背景信息: 如果选中一个,我将显示下一个 div。如果不是,div 将不会显示。在我的系统顶部,单击选中的单选按钮将取消选中它,然后显示的 div 将被隐藏。
我的代码:
<div class="divtop">
<input type="radio" name="r1" value="v1" />
<input type="radio" name="r1" value="v2" />
<input type="radio" name="r1" value="v3" />
<div>
这是脚本:
$('.divtop input:radio').live('click', function(event) {
var div = $("div.divtop");
var radiobuttons = div.find("input[type='radio']");
for (var i = 0; i < radiobuttons.length; i++) {
if (radiobuttons[i].type === 'radio' && radiobuttons[i].checked) {
alert ('on') // action
} else {
alert ('off') // action
}} });
检查一个广播按钮时,如何调整此脚本只能获取一个警报?
该函数必须是通用的(不使用单选按钮名称),因为它将适用于具有不同单选按钮组的不同情况。
【问题讨论】:
-
这是一件奇怪的事情。您将函数绑定到单选按钮的单击事件。当您单击时,您只能在一个组中选择一个单选按钮,那么有什么意义呢?换句话说,当不是单击单选按钮时意味着选择了一个?
-
@j08691 - 好吧,一开始它们都可以取消选中,但这仍然没有意义,因为至少有一个会在你第一次点击时被选中,之后你不能取消选中无论如何,所有这些都是真的吗?
-
@adeneo - 除非我们使用旧的重置按钮。有人还在用吗?
-
cmets 后面的解释:关键是如果选中一个,我将显示下一个 div。如果不是,div 将不会显示。最重要的是,在我的系统中,单击选中的单选按钮将取消选中它,然后显示的 div 将被隐藏。
-
添加“break;”在您的警报('on')之后并删除其他。现在将您的 something.show() 放在警报和休息之间;你的 something.show() 可以替换为 hideAllDivs() 然后 something.show()