0

私はしばらくの間使用してきた JQuery コードを持っていますが、今日はロードブロッキングに遭遇しました - このロードブロッキングは配列入力の形で来ます。

<div id="primary">   //oopse this one contains the survey info
<input type="radio" name="quest[]" value="yes">   //was typing fast didnt realize i typed checkbox meant radio
<input type="radio" name="quest[]" value="no">
</div>
<div id="idnum">   // this one shows only if yes is selected
blah blah blah
</div>

したがって、入力は query[] に送信され、論理的には配列を使用しないように指示されていますが、これはオプションではありません。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>

  $(document).ready(function () {
    $("#quest[] selected").change(function (e) {
      if ($(this).val() == "Yes") {   //if query[] = Yes then run following
        $("#idnum").hide();            //hide div id=idnum
      }
      else {     //if it no longer shows yes then run following
        $("#idnum").show();    //show div id=idnum
          }     
    });
  });

配列[]には、他の質問のためにこの配列の下に他の値があります。また、配列内の特定の入力に焦点を当てるためにこれを修正するにはどうすればよいですか-各divには異なるIDがあり、必要に応じて配列[番号]を見つけることができます.

申し訳ありませんが、いくつかのことを修正し、少し注釈を付けました

可能かどうかはわかりませんが、特定の

4

3 に答える 3

1

あなたが何をしようとしているのか本当にわかりませんが、次のようなものが必要なようです:

$("[name^=quest][value=yes]").change(function () {
   $("#idnum").toggle();
});

..しかし、私は多くの質問があります。「はい」と「いいえ」を同時にチェックできるのはなぜですか?

于 2012-08-17T17:21:52.740 に答える
0

使用 # は id の quest[] は名前です

そのためのcssセレクターは次のようになります

$('[name="quest[]"]')

つまり、あなたが何をしようとしているのかわからない

チェックされたクエスト[] /秒を見つけることは次のようになります:-

$('[name="quest[]"]').find(':checked')
于 2012-08-17T17:21:08.067 に答える
0

jsFiddle デモ

// to grab them by name starting with "quest[" the rest will be dynamic you said
$('[name^="quest["]').on('change', function () {
    if ($(this).attr('value') === 'yes') {
        $(this).closest('div').hide();
    }
});

私が質問を正しく理解していて、最も近い親<div>を非表示にして非表示にしようとしている場合、彼らが [はい] を選択した場合。

于 2012-08-17T17:21:18.427 に答える