检查单选按钮(输入)时如何触发事件?

时间:2016-03-20 11:45:03

标签: javascript jquery html css

我有两个type="radio"输入,默认情况下会检查第一个选项。我想要实现的是在选中第二个选项(输入)时触发特定事件。虽然基本的'if / else'语句(检测到特定输入具有'checked'属性)但我试图这样做但是它不起作用......

这是HTML部分:

<input type="radio" name="radio-group" id="sendnow" value="Send Now" checked>
<label for="sendnow" class="camp_lbl">Send Now</label>
<input type="radio" name="radio-group" id="sendlater" value="Schedule Send">
<label id="zzz" for="sendlater" class="camp_lbl">Schedule Send</label>

CSS:

#send_options_radio_selectors input[type="radio"] {
  position: absolute;
  opacity: 0;
  -moz-opacity: 0;
  -webkit-opacity: 0;
  -o-opacity: 0;
}

#send_options_radio_selectors input[type="radio"] + label {
  position: relative;
  margin-right: 12%;
  font-size: 1.5rem;
  line-height: 23px;
  text-indent: 25px;
  color: #505e6d;
  cursor: pointer;
}

#send_options_radio_selectors input[type="radio"] + label:before {
  content: "";
  display: block;
  position: absolute;
  top: 2px;
  height: 18px;
  width: 18px;
  background: white;
  border: 1px solid gray;
  box-shadow: inset 0 0 0 2px white;
  -webkit-box-shadow: inset 0 0 0 2px white;
  -moz-box-shadow: inset 0 0 0 2px white;
  -o-box-shadow: inset 0 0 0 2px white;
  -webkit-border-radius: 50px;
  -moz-border-radius: 50px;
  -o-border-radius: 50px;
}

#send_options_radio_selectors input[type="radio"]:checked + label:before {
  background: #e16846;
}

3 个答案:

答案 0 :(得分:1)

您可以使用change事件“收听”change事件。然后,您可以使用radio检查特定的:checked.prop('checked)(有很多方法可以检查)

$('[name="radio-group"]').on('change', function() {
  alert($('#sendlater').prop('checked'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="radio" name="radio-group" id="sendnow" value="Send Now" checked>
<label for="sendnow" class="camp_lbl">Send Now</label>
<input type="radio" name="radio-group" id="sendlater" value="Schedule Send">
<label id="zzz" for="sendlater" class="camp_lbl">Schedule Send</label>

答案 1 :(得分:0)

正如我的评论所述:

通过收听更改来检测无线电组值是否发生变化:

$('[name="radio-group"]').on('change', function(){ /* do something */ })

答案 2 :(得分:0)

您可以捕获点击事件,然后检查单选按钮是否被选中: -

$("#sendnow").click(function()
{
     // Run every time when user click radio button 
     if( $(this).is(":checked") )
     {
         // Do what ever you want ;
         // Run only of radio button is checked
     }
});

你可以使用 $("input[type='radio']")代替$("#sendnow")将其添加到每个单选按钮上。