繁体   English   中英

jQuery检测加载时是否选择了单选按钮

[英]jQuery detect if radio button is selected on load

我正在从下一步按钮中删除禁用的类,当两个单选按钮都被选中时,它工作正常,但问题是当我重新加载页面时,两个单选按钮保持选中但下一步禁用的类不会触发。 反正有没有让它工作onload?

<input class="SelectMarital" id="marital1" type="radio" name="marital" value="1"/> 
<input class="SelectMarital" id="marital2" type="radio" name="marital" value="2"/> 

<input class="SelectPrice" id="price1" type="radio" name="price" value="1"/> 
<input class="SelectPrice" id="price2" type="radio" name="price" value="2"/>

<a href="#" id="salary" class="btn disabled">Next Step</a>

$("input[type=radio]").change(function(){
    if($('.SelectMarital').is(':checked') && $('.SelectPrice').is(':checked'))  {
        $("#salary").removeClass('disabled');
    }else {
        $("#salary").addClass('disabled');
    }
 });

有人可以帮忙吗?

只需在页面加载完.trigger()函数后触发您的change处理程序:

 $("input[type=radio]").change(function() { if ($('.SelectMarital').is(':checked') && $('.SelectPrice').is(':checked')) { $("#salary").removeClass('disabled'); } else { $("#salary").addClass('disabled'); } }); $(function(){ $("input[type=radio]").trigger('change'); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input class="SelectMarital" id="marital1" type="radio" name="marital" value="1" checked/> <input class="SelectMarital" id="marital2" type="radio" name="marital" value="2" /> <input class="SelectPrice" id="price1" type="radio" name="price" value="1" checked/> <input class="SelectPrice" id="price2" type="radio" name="price" value="2" /> <a href="#" id="salary" class="btn disabled">Next Step</a> 

您可以定义检查功能,然后在就绪功能中调用它,也可以在附加change事件时调用它:

$(function(){
    //First call for the load
    checkRadioButtons(); 

    //Second call for change event
    $("input[type=radio]").change( checkRadioButtons ); 
});

 $(function() { checkRadioButtons(); $("input[type=radio]").change(checkRadioButtons); }); var checkRadioButtons = function() { if ($('.SelectMarital').is(':checked') && $('.SelectPrice').is(':checked')) { $("#salary").removeClass('disabled'); } else { $("#salary").addClass('disabled'); } } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input class="SelectMarital" id="marital1" type="radio" name="marital" value="1" checked/> Marital 1 <input class="SelectMarital" id="marital1" type="radio" name="marital" value="2" /> Marital 2 <br> <input class="SelectPrice" id="price1" type="radio" name="price" value="1" checked/> Price 1 <input class="SelectPrice" id="price2" type="radio" name="price" value="2" /> Price 2 <br><br> <a href="#" id="salary" class="btn disabled">Next Step</a> 

是的,这很简单。

创建一个方法并将其作为第一种方法调用,以检查单选按钮的状态是否已选中,然后添加类。 原因在于您刚刚处理了单选按钮onChange()内部的逻辑,因此无法获得所需的刷新结果。

$(document).ready(function() {
    checkRadioButtonStatus();

    function checkRadioButtonStatus() {
        if($('.SelectMarital').is(':checked') && $('.SelectPrice').is(':checked')) {
            $("#salary").removeClass('disabled');
        }
        else {
            $("#salary").addClass('disabled');
        }
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM