UPDATE:ブートストラップ・スイッチを使用している場合、あなたは2つの機能のいずれかを使用することができます
onSwitchChange:function(event, state) {
$(this).bootstrapSwitch('disabled', true);
}
あります:あなたのonSwitchChange
ハンドラでそう
$(this).bootstrapSwitch("toggleDisabled"); // toggles whether `this` is disabled
$(this).bootstrapSwitch("disabled",true); // just disables the `this` element
を、あなたはbootstrapSwitch("disabled", true)
メソッドを使用することができますそれが変更されたときのハンドラにあるように、 "トグル"には本当の意味がありません。
前の答え - あなたはdisabled
にフォーム要素を設定したい場合は要素
を無効にするには、jQueryのを使用したい人のために、あなたはそのdisabled
属性を宣言する必要があります。
宣言したばかりのtrue
に設定するか、disabled
に設定するかは、議論の余地があります。
個人的に(そして最も好ましい/互換性がある)はdisabled=disabled
に設定されます。
、あなたがattr()
機能使用できるjQueryのを使用して属性要素を設定するには(最初の引数は、2番目の引数は値である属性です):
onSwitchChange:function(event, state) {
$(this).attr('disabled', 'disabled'); // set the element's disabled attribute
}
注:あなたは無効にしているので、チェックボックス - これはその値がform
で掲示されないことを意味します。
フォームでPOSTされる値を必要とし、readonly
属性を使用してreadonly
に設定場合:
onSwitchChange:function(event, state) {
$(this).attr('readonly', 'readonly'); //checkbox is readonly, but still POSTed
}
をここでdisabled
との違いを説明する偉大な答えはですおよびreadonly
:https://stackoverflow.com/a/7357314/6240567
EDIT:上記のコードはcheckbox
のみを無効/読み取り専用にしています。コンテナなどの要素を無効にするには、.closest()
セレクタを使用する必要があります。
トップセレクタの先端、およびどれ以下のものが必要です。要素の
div
試合タイプ - それはdiv
要素を選択し、この場合には。クラスの
.some-class
一致 - この場合はクラスとして、要素のid
上
#someId
マッチ「some-class
」を持っている任意の要素 - この場合には、それは「someId
」のid
で要素を選択しますそれで、無効にしたいclosest
要素(またはそのコンテナ)を選択することができます
例:
// set the checkbox's closest element with "bootstrapSwitch" class, to disabled
$(this).closest('.bootstrapSwitch').attr('disabled', 'disabled');
これが役に立ちます。 :)
これを実現するには、jQueryの 'attr()'関数を使用してください。私は以下の答えを投稿しました。 'disabled'要素はフォームでポストされていないことに注意してください。値を投稿したい場合は、' readonly'を代わりに使用してください:) –
@GeoffJames私はそれを前に試しました。いずれかの仕事もありませんでした。隠しチェックボックスを無効にしただけです。完全な要素ではありません。私はまだクリックして状態を変えることができます。 – Fadhil
スイッチとチェックボックスを含むコードを投稿できますか? 'checkbox 'が入っているコンテナを見つけるために' .closest(' element ') 'セレクタを使用して無効にすることができます。あなたがコードを投稿すると答えを更新します:) –