2009-08-21 14 views

答えて

4

チェックボックスとのトラブルは、主に彼らが役に立たない時代のすべての方法でchangeイベントが発生するので、IE6で右動作するようになってきています。

のは、無効化を行うための機能を見てみましょう:私はここだけselectほぼ確実にしたいと思い以上に広範であるが、select.some-class-to-identify-the-hours-and-minutes-and-seconds-dropdownsは全く同じように働くだろう使用

function onCheckChange() { 
    if ($("#all-day-checkbox").is(':checked')) 
    $("select").attr('disabled', 'disabled'); 
    else 
    $("select").removeAttr('disabled'); 
} 

注意。

この関数は、ボックスがチェックされているかどうかにかかわらず、それが冪等であることを示していることにも注意してください。ボックスをチェックする過程で繰り返し呼び出すのは安全です。

今、私たちはいくつかの異なるイベントにその機能をバインドする必要があります。

$("#all-day-checkbox").click(onCheckChange).change(onCheckChange); 
$("label[for=all-day-checkbox]").click(onCheckChange); 
+0

私はこれをすべて内部に置くでしょうか? – leora

+0

@oo - (文書).readyに少なくともバインドコードを入れる必要があります。あなたはonCheckChange関数をそこに置くことができますが、それは必要ではありません。 – karim79

+0

一番下のラベルの2行目は何ですか? – leora

0
$('#allday').toggle(
    function(){ 
     $('#hour, #minutes, #am-pm').attr('disabled', 'disabled'); 
    }, 
    function(){ 
     $('#hour, #minutes, #am-pm').removeAttr('disabled'); 
    } 
); 
0

これを試してください。

$('#checkbox').change(function(){ 
    $('#Hour, #Minute, #Period').attr('disabled', this.checked);  
}); 
+0

私はのonchangeをチェックボックスで使用することができないと思います。少なくとも私はそれをテストしてもうまくいきませんでした。あるいは、もしそれが使えるのであれば、チェックボックスの "価値"が技術的に変化していないので、ここではうまくいくかどうかわかりません。 –

+0

私が作った新しい編集が実際に動作します。 – ChaosPandion

+0

興味深い。あなたは選択ボックス以外のものではオンチェンジを使用できることを知らなかった。しかし、jQueryのドキュメントでは、コントロールが値を変更するときだと言うことを考えると、合理的だと思います。この例ではまだ少し混乱しています。また、あなたのコードは単方向でしかありません。ユーザーが#checkboxの選択を解除した場合はどうなりますか? –

関連する問題