1

フォーム内の特定のラジオボタンが選択されている場合はdivを表示したいのですが、jqueryを使用して、フォーム内の他のラジオボタンが選択されている場合はそのdivを非表示にします。

これは私が持っているコードで、機能していません:

$("select").change(function(){
if($("#radio1").is(":selected")){
    $("#grid_9 omega").slideDown("slow");
} else { $("#grid_9 omega").slideUp("slow"); } 
});

ここで、div「gid_9omega」を表示したいラジオボタンのIDは「radio1」です。

ご協力いただきありがとうございます!

4

2 に答える 2

2

私は、オメガはあなたが間違って言及しているクラスであるかもしれないと自由に考えました。

まず、ここには選択がないため、うまくいきません。すべてでテストする必要がありますinput[type=radio]

次に、選択したラジオボタンの属性が実際checked=checkedにあるので、チェックしたいものがチェックされているかどうかをテストする必要があります。そうでない場合は、何もしません。そうである場合は、divを表示します。

JSFiddle

以下のこれと同様のhtml構造を使用します。

<form id="form1" name="form1" method="post" action="">
  <p>
    <label>
      <input type="radio" name="RadioGroup1" value="radio1" id="radio1" />
      Radio 1</label>
    <br />
    <label>
      <input type="radio" name="RadioGroup1" value="radio2" id="radio2" />
      Radio 2</label>
    <br />
    <label>
      <input type="radio" name="RadioGroup1" value="radio3" id="radio3" />
      Radio 3</label>
    <br />
  </p>
</form>
<div id="grid_9" class="omega" style="display:none">show me when Radio 1 is chosen​​​​​

あなたのjsは次のようになります:

$(document).ready(function() {
    $("input[type=radio]").on('click', function(){
        if ($('#radio1').is(':checked')){
            $("#grid_9.omega").slideDown("slow");
        } else { 
            $("#grid_9.omega").slideUp("slow");
        }
    });
});

</ p>

于 2012-06-27T00:35:09.333 に答える
0

ID名の文字の間にスペースを使用しないでください。また、select要素はradioボタンとは関係ありません。これを試してください。

$("#radio1").change(function(){
if($(this).is(":checked")) {
    $(".omega").slideDown("slow"); // note that `omega` has no "hash" or "dot" sign and this returns undefined
} else if ($('.omega').is(':visible')) { // makes sure that omega is visible
   $(".omega").slideUp("slow"); 
} 
});
于 2012-06-27T00:20:35.207 に答える