2011-12-17 54 views
1

我有一个带有两个单选按钮“Yes”和“No”的窗体,用于切换div的可见性。如何使用jQuery显示单选按钮的特定警报?

如果仅在选择了“是”选项时选择了“否”选项,我才会向用户显示警报。

如果这两个选项都未被选中,并且单击“否”,则不应显示警报。处理这种

$('.toggle').on('change',function(){ 

    var showOrHide = false; 

    $(this).siblings('input[type=radio]').andSelf().each(function() { 

     if ($(this).val() == 1 && $(this).prop("checked")) showOrHide = true; 

    })  

    $(this).parent().parent().next('.group').toggle(showOrHide);  

}).change() 

回答

1

使用变量存储已选择的值。

HTML

<input type="radio" id="Yes" name="rad" value="Yes"/>Yes<br/> 
<input type="radio" id="No" name="rad" value="No"/>No<br/> 

的Javascript

var alreadySelected=""; 
$("input").click(function(){ 
    if(alreadySelected=="Yes") 
    { 
    alert("You are switching from Yes"); 
    } 
    alreadySelected=$(this).val(); 
}); 

编辑:根据你的评论,如果一个单选按钮在页面加载已经选中,使用此代码,

后加载页面,获取已经检查过的项目并将其存储在“已选择”变量中。以下是更新后的代码

var alreadySelected=""; 
$(function(){ 
    alreadySelected=$('input[name=rad]:checked').val() 
}) 
$("input").click(function(){ 
    if(alreadySelected=="Yes") 
    { 
    alert("You are switching from Yes"); 
    } 
    alreadySelected=$(this).val(); 
}); 

这里是工作演示:http://jsfiddle.net/VMKaP/8/

+0

这几乎是完美的,但如果在页面加载时选择了“是”单选按钮,则不起作用。如果在这种情况下选择“否”,则不显示警报。 http://jsfiddle.net/VMKaP/6/ – Michael

+0

@Michael:在页面加载中读取已选择的值。我更新了我的答案和jsfiddle链接来处理这种情况。 – Shyju

1

一种方法是只当是按钮已被检查应用处理器,并删除它时的无按钮被选中。我假设两者都开始未选中,否则至少会有一个按钮被选中,第二个条件不适用。

$('.toggle[value="Yes"]').on('change', function() { 
    $('.toggle[value="No"]').off('change'); 
    if (this.checked) { 
     $('.toggle[value="No"]').on('change', function() { 
      // show your alert 
     }); 
    }); 
}); 
+0

这接近。它适用于第一次点击,但警报总是在选择选项后显示。见http://jsfiddle.net/HCfsy/ – Michael

+0

@迈克尔 - 你正在使用'val()'不正确。我想你想''切换[value =“0”]''和''toggle [value =“1”]''或使用'eq'。看到这个更新的小提琴:http://jsfiddle.net/rar7V/我的选择器中有一个额外的空间,我现在已经删除了。 – tvanfosson

+0

哎呀。差不多了。当选择“否”时,div不会再次隐藏。 – Michael

0

这里是一个把戏,将做的工作 - 设置页面中的一个无形的场,它指示如果“是”按钮是chosen- 为前 -

<input type="hidden" value="no" name="isYesChosen"> 

现在,当正在检查“是”收音机 - 发射一个函数,将“isYesChosen”的值设置为 - “是”。

现在只有在检查输入的值为“是”时才可以触发切换按钮 (在jQuery代码的开头添加一个简单的if语句)。 如果您有任何垃圾,请注意我

相关问题