javascript - 在 Javascript 中对各种单选按钮进行多次检查

标签 javascript jquery html

我正在开发一个应用程序,它显示 2 个图表并包含用于更改时间间隔的单选按钮。 例如,我想做的是,如果我在第二组单选按钮中选择每月,则第一组也应该检查该选项。

<div class="panel-radio-buttons">
    <form id="SettingMixRadioButtonsGroup1">
        <label class="radio-inline"><input type="radio" name="radio1" value="1" id="BtnEnrollmentsInpatient"  
                           ng-model="togglePefsBifsTimeFrame" ng-change='SetDay()'>Daily</label>
        <label class="radio-inline"><input type="radio" name="radio1" value="2" id="BtnEnrollmentsInpatient2"
                           ng-model="togglePefsBifsTimeFrame" ng-change='SetWeek()' >Weekly</label>
        <label class="radio-inline"><input type="radio" name="radio1" value="3" id="BtnEnrollmentsInpatient3"
                           ng-model="togglePefsBifsTimeFrame" ng-change='SetMonth()'>Monthly</label>
    </form>
</div>

<div class="panel-radio-buttons">
    <form id="SettingMixRadioButtonsGroup2">
        <label class="radio-inline"><input type="radio" name="radio1" value="1" id="BtnEnrollmentsInpatient4"  
                           ng-model="togglePefsBifsTimeFrame" ng-change='SetDay()'>Daily</label>
        <label class="radio-inline"><input type="radio" name="radio1" value="2" id="BtnEnrollmentsInpatient5"
                           ng-model="togglePefsBifsTimeFrame" ng-change='SetWeek()'  ng-checked="togglePefsBifsTimeFrame2" >Weekly</label>
        <label class="radio-inline"><input type="radio" name="radio1" value="3" id="BtnEnrollmentsInpatient6"
                           ng-model="togglePefsBifsTimeFrame" ng-change='SetMonth()'>Monthly</label>
    </form>
</div>

我尝试在 JS 中使用以下代码进行检查:

$scope.SetDay= function(){
    document.getElementById("SettingMixRadioButtonsGroup1").child[0].checked = true;
    document.getElementById("SettingMixRadioButtonsGroup2").child[0].checked = true;
};

但它不会对子元素执行检查...如果我使用父元素,它可以正常工作,但它不是一个非常可扩展的解决方案

最佳答案

这将为单选按钮的 change 事件创建一个处理程序。它选择 panel-radio-buttons 下具有相同 value 属性的所有单选按钮,并将其 checked 属性设置为触发的元素的属性事件。

$("input[type=radio][name=radio1]").change(function() {
  var val = $(this).attr("value");
  var radio = $(".panel-radio-buttons input[type=radio][name=radio1][value=" + val + "]");
  radio.prop("checked", $(this).is(":checked"));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="panel-radio-buttons">
  <form id="SettingMixRadioButtonsGroup1">
    <label class="radio-inline">
            <input type="radio" name="radio1" value="1" id="BtnEnrollmentsInpatient" ng-model="togglePefsBifsTimeFrame" ng-change='SetDay()'>Daily</label>
    <label class="radio-inline">
            <input type="radio" name="radio1" value="2" id="BtnEnrollmentsInpatient2" ng-model="togglePefsBifsTimeFrame" ng-change='SetWeek()'>Weekly</label>
    <label class="radio-inline">
            <input type="radio" name="radio1" value="3" id="BtnEnrollmentsInpatient3" ng-model="togglePefsBifsTimeFrame" ng-change='SetMonth()'>Monthly</label>
  </form>
</div>

<div class="panel-radio-buttons">
  <form id="SettingMixRadioButtonsGroup2">
    <label class="radio-inline">
            <input type="radio" name="radio1" value="1" id="BtnEnrollmentsInpatient4" ng-model="togglePefsBifsTimeFrame" ng-change='SetDay()'>Daily</label>
    <label class="radio-inline">
            <input type="radio" name="radio1" value="2" id="BtnEnrollmentsInpatient5" ng-model="togglePefsBifsTimeFrame" ng-change='SetWeek()' ng-checked="togglePefsBifsTimeFrame2">Weekly</label>
    <label class="radio-inline">
            <input type="radio" name="radio1" value="3" id="BtnEnrollmentsInpatient6" ng-model="togglePefsBifsTimeFrame" ng-change='SetMonth()'>Monthly</label>
  </form>
</div>

关于javascript - 在 Javascript 中对各种单选按钮进行多次检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46561164/

相关文章:

javascript - 事件链接不改变颜色

javascript - 相同的表数据 rowspan html css

javascript - 导入的数据库函数未在 Expressjs 中返回路由内的值

javascript - 在 Django 表单中使用 .submit(function) 时出现 "Forbidden 403 - CSRF verification failed"

html - 如何在桌面和移动设备上使图像中的文本动态化

javascript - 如何关闭对 html 输入的浏览器建议

javascript - JQuery 片段不会一直触发,只是有时触发

javascript - Office.js 识别文档中的 ContentControl 位置

jquery - 在动画时获取元素的边距顶部

javascript - 使用 Jquery 在 Icon 中滑动