0

選択メニューの特別なオプションの値が 1 に等しいかどうかを確認してから、別のオブジェクトを非表示にしようとしています。私は一日中試してみましたが、それを理解することはできません(おそらくjqueryの初心者のためです)

データベースから入力した選択メニューがあります。id="1" のオプションに "selected=selected" がある場合、ページが読み込まれたときに別の div を非表示にする必要があります。

これは私がこれまでに得たものです:

<select>
<option id="3">test1</option>
<option id="1" selected="selected">test2</option>
<option id="2">test3</option>
</select>
<div id="hide">Hide me</div>


$("#1 option:selected").ready(function () {
   $("#hide").hide();
});

どんな助けでも大歓迎です。ありがとう.. /アンドレアス

4

4 に答える 4

10

私が恐れているあなたのコードにはいくつかの問題があります:

  1. 間違ったオブジェクトでイベントを使用しています -.ready()ドキュメントに適用する必要があります
  2. ID は数字で始めることはできません
  3. id 属性の代わりに value 属性を使用する必要があります。
  4. .val()値を取得するために使用する方が良い
  5. ページに別の ID を追加する場合に備えて、select に ID を指定する必要があります。

すべてを一緒に入れて:

<select id="foo">
<option value="3">test1</option>
<option value="1" selected="selected">test2</option>
<option value="2">test3</option>
</select>
<div id="hide">Hide me</div>


$(document).ready(function () {
   if ($('#foo').val() != 1)
       $("#hide").hide();
});

選択が変更されたときにこれを動的に実行したい場合は、次のように実行できます。

$('#foo').change(function () {
   if ($(this).val() != 1)
       $("#hide").hide();
   else
       $("#hide").show();
});
于 2009-10-20T12:43:35.050 に答える
0

まず、あなたのIDは有効なものではありません。数字で始めないでください。select 要素に ID を指定し、選択した要素を見つけて、その値を 1 にチェックし、適切な div を表示/非表示にします。

于 2009-10-20T12:40:51.670 に答える
0
// assume your select has id="mySelect"
$(function() {
    $('#mySelect').change(function() {
        var value = $(this).val();
        if (value == '1') {
            $('#hide').hide();
        } else {
            $('#hide').show();
        }
        return false;
    });
});
于 2009-10-20T12:43:32.227 に答える
0
$(function() {

$('select').change(function(){
  if ($("option:selected",this).attr('id') == 1 ){
   $("#hide").hide();
  }
});

});

あなたが持っているもので動作しますが、他の人が提起したポイントと同じです -

  • HTML 仕様では、数字で始まる ID を持つべきではないと述べています
  • ID の代わりにオプションに value 属性を使用する
  • <select>の変更イベントが発生したときに実行される関数にコードを配置する必要があります
  • 一意<select>に識別するための ID を指定します。
于 2009-10-20T12:44:51.977 に答える