【问题标题】:Ensuring that all radio buttons are checked on a page.确保选中页面上的所有单选按钮。
【发布时间】:2016-06-04 01:40:57
【问题描述】:

我有一个页面,下面有很多单选按钮。我的用户必须 检查每一行。我正在寻找一种点击我的保存按钮的方式 我检查了所有单选按钮,并确保使用有限的 javascript 或 jquery 代码检查它们。

我怎样才能做到这一点?

            <div id="HealthCheck1">           
                <div id="HCBudget">
                    <label for="budgethealth">Budget Health</label>
                    <span class="radiored"><input type="radio" id="bhred" name="budgethealth" value="red" @(Model.BudgetHealth == "3" ? "checked='checked'" : "")></input></span>
                    <span class="radioyellow"><input type="radio" id="bhyellow" name="budgethealth" value="yellow" @(Model.BudgetHealth == "2" ? "checked='checked'" : "")></input></span>
                    <span class="radiogreen"><input type="radio" id="bhgreen" name="budgethealth" value="green" @(Model.BudgetHealth == "1" ? "checked='checked'" : "")></input></span>
                </div>
                <hr>
                <div id="HCTeam">
                    <label for="teamhealth">Team Health</label>
                    <span class="radiored"><input type="radio" id="thred" name="teamhealth" value="red" @(Model.TeamHealth == "3" ? "checked='checked'" : "")></input></span>
                    <span class="radioyellow"><input type="radio" id="thyellow" name="teamhealth" value="yellow" @(Model.TeamHealth == "2" ? "checked='checked'" : "")></input></span>
                    <span class="radiogreen"><input type="radio" id="thgreen" name="teamhealth" value="green" @(Model.TeamHealth == "1" ? "checked='checked'" : "")></input></span>
                </div>
                <hr>
                <div id="HCRisk">
                    <label for="riskhealth">Risk Health</label>
                    <span class="radiored"><input type="radio" id="rhred" name="riskhealth" value="red" @(Model.RiskHealth == "3" ? "checked='checked'" : "")></input></span>
                    <span class="radioyellow"><input type="radio" id="rhyellow" name="riskhealth" value="yellow" @(Model.RiskHealth == "2" ? "checked='checked'" : "")></input></span>
                    <span class="radiogreen"><input type="radio" id="rhgreen" name="riskhealth" value="green" @(Model.RiskHealth == "1" ? "checked='checked'" : "")></input></span>
                </div>
            </div>      
            <div id="ProgHealthStat" class="btnholder">
                <button id="Save" class="sendbtn">Save Changes</button>
            </div>

我尝试了这行代码,但没有运气。尽管单选按钮都被选中,但我仍然收到警报。

            $('div.HealthCheck1:not(:has(:radio:checked))')

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    为每个包含单选按钮的 div 赋予一个类属性(例如 class="foo")。然后你可以这样做:

    $(document).ready(function() {
      $('#Save').on('click', function() {
        if ($('.foo:not(:has(:radio:checked))').length) {
          alert('Please finish filling out the form');
        }
      });
    })
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div id="HealthCheck1">
        <div id="HCBudget" class="foo">
            <label for="budgethealth">
                Budget Health
            </label>
            <span class="radiored">
                <input id="bhred" name="budgethealth" type="radio" value="red"/>
            </span>
            <span class="radioyellow">
                <input id="bhyellow" name="budgethealth" type="radio" value="yellow"/>
            </span>
            <span class="radiogreen">
                <input id="bhgreen" name="budgethealth" type="radio" value="green"/>
            </span>
        </div>
        <hr>
        <div id="HCTeam" class="foo">
            <label for="teamhealth">
                Team Health
            </label>
            <span class="radiored">
                <input id="thred" name="teamhealth" type="radio" value="red"/>
            </span>
            <span class="radioyellow">
                <input id="thyellow" name="teamhealth" type="radio" value="yellow"/>
            </span>
            <span class="radiogreen">
                <input id="thgreen" name="teamhealth" type="radio" value="green"/>
            </span>
        </div>
        <hr>
        <div id="HCRisk" class="foo">
            <label for="riskhealth">
                Risk Health
            </label>
            <span class="radiored">
                <input id="rhred" name="riskhealth" type="radio" value="red"/>
            </span>
            <span class="radioyellow">
                <input id="rhyellow" name="riskhealth" type="radio" value="yellow"/>
            </span>
            <span class="radiogreen">
                <input id="rhgreen" name="riskhealth" type="radio" value="green"/>
            </span>
        </div>
        </hr>
        </hr>
    </div>
    <div class="btnholder" id="ProgHealthStat">
        <button class="sendbtn" id="Save">
            Save Changes
        </button>
    </div>

    【讨论】:

    • 如果他们必须从每个类别中选择一个,您是否还需要&gt; div 以便它对每个子节点执行检查?
    • @Nat 你是对的,谢谢!我已经更新了我的答案,使其真正起作用。
    • 我会尽快测试并回复您。谢谢大家。
    猜你喜欢
    • 1970-01-01
    • 2020-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-18
    • 2020-12-16
    • 2020-01-11
    相关资源
    最近更新 更多