時間のドロップダウンを1つの選択に、分を別のものに、午前/午後を3番目に表示します。 "1日中"と表示されているチェックボックスがあります。ユーザーがチェックボックスをクリックしたときに、いくつかのドロップダウン選択コントロールを無効にする
"一日中"をチェックすると、すべての選択ドロップダウンが無効になります。
時間のドロップダウンを1つの選択に、分を別のものに、午前/午後を3番目に表示します。 "1日中"と表示されているチェックボックスがあります。ユーザーがチェックボックスをクリックしたときに、いくつかのドロップダウン選択コントロールを無効にする
"一日中"をチェックすると、すべての選択ドロップダウンが無効になります。
チェックボックスとのトラブルは、主に彼らが役に立たない時代のすべての方法で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);
$('#allday').toggle(
function(){
$('#hour, #minutes, #am-pm').attr('disabled', 'disabled');
},
function(){
$('#hour, #minutes, #am-pm').removeAttr('disabled');
}
);
これを試してください。
$('#checkbox').change(function(){
$('#Hour, #Minute, #Period').attr('disabled', this.checked);
});
私はのonchangeをチェックボックスで使用することができないと思います。少なくとも私はそれをテストしてもうまくいきませんでした。あるいは、もしそれが使えるのであれば、チェックボックスの "価値"が技術的に変化していないので、ここではうまくいくかどうかわかりません。 –
私が作った新しい編集が実際に動作します。 – ChaosPandion
興味深い。あなたは選択ボックス以外のものではオンチェンジを使用できることを知らなかった。しかし、jQueryのドキュメントでは、コントロールが値を変更するときだと言うことを考えると、合理的だと思います。この例ではまだ少し混乱しています。また、あなたのコードは単方向でしかありません。ユーザーが#checkboxの選択を解除した場合はどうなりますか? –
私はこれをすべて内部に置くでしょうか? – leora
@oo - (文書).readyに少なくともバインドコードを入れる必要があります。あなたはonCheckChange関数をそこに置くことができますが、それは必要ではありません。 – karim79
一番下のラベルの2行目は何ですか? – leora