0

チェックされているラジオボタンに応じて、単純な非表示/表示効果を実行しようとしています。正しく機能しておらず、理由はわかりません。ユーザーが「Oui」をクリックしたときに非表示のテーブル(#reprint_oui)をSHOW表示し、「Non」が選択されている場合は非表示にします。

これが私のJSコードです:

$(document).ready(function(){

$("input[name$='reprint_group']").click(function(){

var radio_value = $(this).val();

if(radio_value=='Oui') {
    $("#reprint_oui").show("slow");
}
else if(radio_value=='Non') {
   $("#reprint_oui").show("slow");
   }
  });

$("#reprint_oui").hide();

});​

これが私のHTMLです:

<h2>Fiche technique de production</h2>
      <table width="100%" border="0">
          <tr>
            <td width="80%">Avons-nous par le passé produit des affiches que vous vous apprêtez à commander?</td>
            <td width="20%"><label for="oui_reprint">Oui</label>
            <input name="reprint_group" type="radio" id="oui_reprint" value="Oui">
            <label for="non_newprint">Non</label>
            <input type="radio" name="reprint_group" id="non_newprint" value="Non"></td>
        </tr>
      </table>
      <table width="100%" border="0" id="reprint_oui">
        <tr>
          <td width="80%">S'agit-il d'une réimpression sans changement?</td>
          <td width="20%"><label for="oui_reprint">Oui</label>
            <input type="radio" name="reprint_sans_changement" id="oui_reprint" value="Oui">
            <label for="non_newprint">Non</label>
            <input type="radio" name="reprint_sans_changement" id="non_newprint" value="Non"></td>
        </tr>
      </table>

これが私のフィドルです

ありがとうございました

4

2 に答える 2

1

ラジオ値が。の場合、実際にshowはテーブルを使用していますNonhide()代わりに次のように変更してください。

if (radio_value == 'Oui') {
  $("#reprint_oui").show("slow");
} else if(radio_value == 'Non') {
  $("#reprint_oui").hide("slow"); // you have show() here
}

デモ

于 2012-09-04T20:22:57.723 に答える
0

両方のif-elseの結果は、reprint_oui要素を表示します。

「非」の場合は要素を非表示にします

http://jsfiddle.net/25KkU/1/

また、JavaScriptで比較する場合は、必ずトリプル「=」を使用してください。

if(a===b)
{}
于 2012-09-04T20:23:24.137 に答える