2012-03-12 8 views
0

ビジネスの時間を入力するためのドロップダウンがあります。毎日IDがhours_dayname_openとhours_dayname_closedのドロップダウンがあります。私はそれを閉じたものとしてマークするためのチェックボックスも持っています。私はそれがチェックされている場合は、ドロップダウンを無効にするには、次のjQueryを使用しています:jQuery複数のドロップダウンを無効にする

$("#closed_monday").click(function(){ 
    if($(this).is(':checked')){ 
     $("#hours_monday_open").attr("disabled", true); 
     $("#hours_monday_closed").attr("disabled", true); 
    }else{ 
     $("#hours_monday_open").attr("disabled", false); 
     $("#hours_monday_closed").attr("disabled", false); 
    } 
}); 

ただし、チェックボックスが唯一のオープン時間を選択したときに有効/無効になっています...クローズドロップダウンが無視なっているようです。

+0

あなたは1.7を使用している場合小道具()メソッドで見たいと思うかもしれません。+ –

+0

残念ながら、私は、現時点 –

答えて

5

奇妙なことに、適切な属性はdisabledであり、trueではありません。

$("#hours_monday_open").attr("disabled", "disabled"); 

、それを有効にdisabled属性削除するには:jQueryの1.6以来

$("#hours_monday_open").removeAttribute("disabled"); 

を、あなたはこれを設定/解除する.prop()機能を使用することができます。

+0

+1で1.4.2で立ち往生しています。新しい 'prop'関数を記述しておかなければならない。 – gdoron

+0

良いアイデア。完了! –

0
$("#closed_monday").click(function(){ 
     if($(this).is(':checked')){ 
     $("#hours_monday_open, #hours_monday_closed").attr("disabled", "disabled"); 
     }else{ 
     $("#hours_monday_open, #hours_monday_closed").removeAttribute("disabled"); 
     } 
    });​ 
+0

prop()がこの目的に役立つかもしれません:http://api.jquery.com/prop/ –

0
$("#closed_monday").change(function(){ 
    if($(this).is(':checked')){ 
     $("#hours_monday_open").attr("disabled", "disabled"); 
     $("#hours_monday_closed").attr("disabled", "disabled"); 
    }else{ 
     $("#hours_monday_open").removeAttribute("disabled"); 
     $("#hours_monday_closed").removeAttribute("disabled"); 
    } 
}); 

それは()と.click()、単に間違ったイベントを.changeするための単純な変化です。

http://jsfiddle.net/6Yr8Q/2/

関連する問題