1

私は2つのラジオグループを持っています。pRange がチェックされている場合 (val=pRange)、periodType の値が 'one'、'two'、または 'three' の場合に、メッセージという 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="" not 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 に答える