2012-02-03 8 views
0

私は約4つのオプションを持つ選択メニューを持っています。選択メニューの最初のオプションはNO値です。他のオプションには値があります。ユーザーが値を持つオプションを選択すると、チェックボックスが無効になっている必要があります。それ以外の場合は、空白の値のオプションに戻ると、チェックボックスが再び有効になります。選択メニューに値があるときにチェックボックスを無効にする

以下のコードはチェックボックスを無効にしますが、ユーザーが選択メニューの最初の空白のオプションをクリックしたときにチェックボックスを再度有効にします。

$(document).ready(function(){ 
$('#select-menu').change(function() { 
    if ($(this).val() !== ':first-child') { 
     $("#related-checkbox").attr("disabled", true); 
    } else { 
    $("#related-checkbox").attr("disabled", false); 
      } 
}); 
}); 

答えて

1

文は

if ($(this).val() !== ':first-child') { 

を言い、選択された値の文字列は、それが最初の子であるかどうかを、「最初の子」であるならば、文字通りチェックします。ちょうどあなたが(それが空白になっていないかどうか)、それは最初の選択肢であるかどうかを確認したい場合は、あなたが選択した要素のヴァル

if ($(this).val() == $(this).children(':first-child').val()) 
+0

ありがとうmrtsherman、これは機能しました。本当に助けに感謝します。 – mrtonyb

1

に最初の子供のヴァルを比較することができ、ブランク

if ($(this).val() !== '') { 

に設定「選択メニューの最初の -blankオプションをユーザがクリックしたときに、チェックボックスを再び有効にしたいですか?」

$("#related-checkbox").removeAttr("disabled"); 
+0

はい、それが私に必要なことです。提案をありがとう、私は今それを試してみましょう。 – mrtonyb

+0

mrtshermanはあなたのif条件について正しいです。彼が言ったものにIF部分を変更してください。 –

関連する問題