2012-01-05 7 views
0

idを持つ複数の要素が返されるように、以下のコードを変更するにはどうすればよいですか(id = "firstId"のものよりも多くの要素に実行されるアクション)。前もって感謝します。複数の戻り値jqueryを追加する

$("#main").change(function() { 
    var first = $(this); 
    $('#occupation').prop("disabled", function() { 
     return first.children(":selected").attr("id") === ("firstId"); 
    }); 
}); 
+0

私はこれを数回読んで、私は何でまだ混乱していますやろうとしている。より多くのコードと説明をここに提供できますか? – pixelbobby

+0

私は1つ以上のものを送り返したいと思っていますか? JSONオブジェクトを使用し、戻り値を調べて、実行するアクションを設定する必要があります。 – Jakub

+0

これを見てくださいjsFiddle http://jsfiddle.net/FQrcG/。すべての雇用者とは別のものが選択された場合は、2番目の選択肢を無効にします。 – jacktheripper

答えて

1
var ids = ["firstId", "secondId"]; 
$("#main").change(function() { 
    var first = $(this); 
    $('#occupation').prop("disabled", function() { 
     return jQuery.inArray(first.children(":selected").attr("id"), ids) !== -1; 
    }); 
}); 
+0

'inArray'はインデックスを返します。見つからなければ' -1'を返します。私は '!== -1'を追加できると思います。 – pimvdb

+0

@pimvdbありがとうございます。 – roryf

+0

これはリストの最初の項目に対してのみ有効です – jacktheripper

1
$("#employedSelect").change(function() { 
    var wut = $(this).children(":selected").attr("id"); 
    $('#occupation').prop("disabled",((wut=="all")?false:(wut=="employed")?false:true)); 
}); 
+0

は最初のオプションでのみ動作します。 – jacktheripper

+0

私はあなたの質問があなたがやろうとしていたことよりもむしろ尋ねてきたことを行った。ここにあなたのニーズに合ったものがありますhttp://jsfiddle.net/FQrcG/5/ – Tank

1

私は、これはあなたが期待しているものを、

$("#employedSelect").change(function() { 
    var value = $(this).val(); 
    var isPresent = false; 
    $('#occupation').children("option").each(function(){ 
     if($(this).val() === value) 
      isPresent = true; 
    }); 
    if(isPresent) 
     $('#occupation').attr("disabled","disabled"); 
    else 
    $('#occupation').removeAttr("disabled"); 
}); 

はフィドルと思い:http://jsfiddle.net/FQrcG/4/

関連する問題