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

时间:2012-07-06 14:33:21

标签: javascript jquery

我有两个广播组。我想提出一个条件,如果检查了pRange(val = pRange)并且periodType值是'one','two'或'three',它会显示一个名为message的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>

2 个答案:

答案 0 :(得分:1)

掀起了一个快速的小提琴jsfiddle

您的无线电值写为val =“”not value =“”不知道这是仅用于测试还是用于实际代码。

答案 1 :(得分:0)

我检查了你的值的控制台

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/