1

我有两个广播组。我希望设置一个条件,如果选中 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>
4

2 回答 2

1

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

您的单选值写为 val="" 而不是 value="" 不知道这只是为了测试还是在您的实际代码中。

于 2012-07-06T14:44:50.133 回答
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/

于 2012-07-06T14:44:59.237 回答