如果选中两个复选框,则条件在 jQuery 中不起作用

condition if two checkboxes are checked doesn't work in jquery

本文关键字:条件 jQuery 不起作用 复选框 两个 如果      更新时间:2023-09-26

我有两个无线电组。我希望放置一个条件,如果选中 pRange (val=pRange) 并且 periodType 值为"一"、"二"或"三",它会显示一个名为消息的div。但是我下面的 js 代码似乎不起作用。任何帮助都非常感谢。

$("input[name$='periodType']").change(function() {
        var grpname = $(this).val();
        var pname = $("input:radio[name='mainPeriod']:checked").val();
        if (((grpname == "one") || (grpname == "two") || (grpname == "three")) && (pname=="pRange")) { 
                alert( pname + ' gname= ' + 'yes'); $('.message').show; 
        }
        else { 
                alert( pname + ' gname= ' + 'no'); 
        }
 });

组 1

<input type="radio" name="mainPeriod" id="pRange" val="pRange" />
<input type="radio" name="mainPeriod" id="pHour" val="pHour" />
<input type="radio" name="mainPeriod" id="pDay" val="pDay" />
<input type="radio" name="mainPeriod" id="pWeek" val="pWeek" />
<input type="radio" name="mainPeriod" id="pMonth" val="pMonth" />

第 2 组

<input type="radio" name="periodType" val="one" />
<input type="radio" name="periodType" val="two" />
<input type="radio" name="periodType" val="three" />
<input type="radio" name="periodType" val="four" />
<input type="radio" name="periodType" val="five" />
<div class="message" style="display:none;">Message</div>

鞭打一个快速的小提琴 jsfiddle

您的无线电值写为 val=" 而不是 value=" 不知道这是否仅用于测试或在您的实际代码中。

我检查了你的值的控制台

var grpname = $(this).val();
var pname = $("input:radio[name='mainPeriod']:checked").val();

两者都返回打开/关闭,这导致了问题。 您需要获取的是.attr('val'),以便您可以检查值

var grpname = $(this).attr('val');        
var pname = $("input:radio[name='mainPeriod']:checked").attr('val');

这是一个小提琴 http://jsfiddle.net/B9GyV/