0

オプションとして「はい」と「いいえ」だけのラジオボタンがあります。

<input name="paperAvailable" type="radio" value="Yes" /> Yes
<input name="paperAvailable" type="radio" value="No"> No

オプション「いいえ」が選択されている場合、jQueryスクリプトを使用していくつかのテーブル行を非表示にし(クラス名「paperavailable」の下)、ユーザーが「はい」を選択したときに行を再度表示したい

どういうわけか、関数はページの読み込み時に一度しか機能しないようです。関数を document.ready 関数に配置したためですか?

$(document).ready(function(){

$('.paperavailable').hide();


//Paper Available columns
$("input[name='paperAvailable']").click(function() {
    if ($("input[name='paperAvailable']").val() == "YES") { 
        $(".paperavailable").show();
    }

    else { 
    $(".paperavailable").hide("slow");
        }

});

});
4

1 に答える 1

2

2つの問題

  1. 文字列の比較では大文字と小文字が区別されます。値は に設定されていYesますが、比較すると、YES
  2. $("input[name='paperAvailable']").val()name を持つ最初の入力要素の値を常に返しますpaperAvailable。代わりに、チェックされた要素の値を取得する必要があります

チェックしたラジオボックスをテストする必要があります

$(document).ready(function () {
    var $paper = $('.paperavailable').hide();
    //Paper Available columns
    var $radios = $("input[name='paperAvailable']").click(function () {
        if ($radios.filter(':checked').val() == "Yes") {
            $paper.show();
        } else {
            $paper.hide("slow");
        }
    });
});

デモ:フィドル

于 2013-10-09T08:54:29.673 に答える