如何使用jQuery使用单选按钮显示特定警报?

时间:2011-12-17 15:45:49

标签: jquery

我有一个带有两个单选按钮的表单,“是”和“否”,可以切换div的可见性。

如果仅在选择“是”选项时选择“否”选项,我想向用户显示警告。

如果未选择任何选项并且单击“否”,则不应显示警报。

$('.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()  

3 个答案:

答案 0 :(得分:1)

处理此问题的一种方法是仅在选中“是”按钮时应用处理程序,并在选中“否”按钮时将其删除。我假设两者都开始未选中,否则至少会检查其中一个按钮而你的第二个条件不适用。

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

答案 1 :(得分: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();
});

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

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

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/

答案 2 :(得分:0)

这是一个可以完成工作的技巧 - 在页面中设置一个不可见字段,指示是否选择了“是”按钮 - 对于前 -

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

现在,当检查“是”无线电时 - 触发一个功能,将“isYesChosen”的值设置为 - “是”。

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