2016-08-24 13 views
0

私は立ち往生しているので助けが必要です。最初のスクリプトは正常に動作しますが、ブートストラップ/ Javascript - 選択されている場合はチェックボックスをオンにし、そうでない場合はすべてを選択解除します

$(function() { 
$('.turn_on').on("click", function() { 
var checked = $(this).is(':checked'); 
var $otherChecks = $('.check_1, .check_2'); 
$otherChecks.removeAttr('disabled', checked); 
}); 
}); 

$('.turn_on').change(function() { 
if(this.checked){ 
var $otherChecks = $('.check_1, .check_2'); 
$otherChecks.removeAttr('disabled', checked); 
}else{ 
var checked = $(this).is(':checked'); 
var $otherChecks1 = $('.check_1, .check_2'); 
$otherChecks1.removeAttr('disabled', checked); 
} 
}); 

<form method="post"> 
<label class="checkbox"><input type="checkbox" name="turn_on" value="turn_on" class="turn_on">Turn on</label> 
<br> 
<label class="checkbox"><input type="checkbox" name="check_1" value="check_1" class="check_1" disabled>Option 1</label> 
<label class="checkbox"><input type="checkbox" name="check_2" value="check_2" class="check_2" disabled>Option 2</label> 
<button type="submit" class="btn btn-primary" name="submit">Save</button> 
</form> 

「チェンジ」でスクリプトが動作しない:

だから基本的に私はこれを持っています。 これは基本的には、ユーザーが "turn_on"というボックスをチェックして、他のすべてのチェックボックスを "undisables"するときです。

また、すべてのdivとスクリプトが正しいです。 変更に応じてコードが機能しないことがあります。

+0

PHPの部分はどこですか? – Epodax

+0

どのようなPHP部品ですか? @エポダス –

+0

あなたの質問にはPHPで – Epodax

答えて

0

方法について:

あなたはコードが動作しますが、変更機能がないと言うなら
$('.turn_on').on('change', function(){ 
     if($(this).prop("checked")){ 
     var $otherChecks = $('.check_1, .check_2'); 
     $otherChecks.removeAttr('disabled', checked); 
     }else{ 
     var checked = $(this).is(':checked'); 
     var $otherChecks1 = $('.check_1, .check_2'); 
     $otherChecks1.removeAttr('disabled', checked); 
    } 
    }); 

?上記のコードを試して、まだ問題がある場合はコメントしてください。 NEW ANSWER -

あなたは "この"

EDIT約$()が欠けています。 有効/無効にすると、実際にprop()instedを使用する必要があります。私はあなたのためのフィドルを作成しました。

$(function() { 
$('.turn_on').on('change', function(){ 
    if($(this).prop("checked")){ 
    var $otherChecks = $('.check_1, .check_2'); 
    $otherChecks.prop('disabled', false); 
    }else{ 
    console.log('unchecked'); 
    var checked = $(this).is(':checked'); 
    var $otherChecks1 = $('.check_1, .check_2'); 
    $otherChecks1.prop("disabled", true); 
} 
}); 
}); 

私はあなたを誤解して、あなたはまだそれが常に無効を削除したい場合は、単にtrueに設定し、代わりに偽。 また、チェックマークを削除する場合は、prop( "check"、false); テストのためのフィドルはここにあります:https://jsfiddle.net/embtpspL/1/

+0

とタグ付けされていません。うまくいきません。 :/ –

+0

@PatrykCz。私はあなたが質問を正しく尋ねたとは思わない? 私はあなたのためにフィドルを作成しました。 これが欲しいものなら、私の答えを変えることができるようにここにコメントしてください。 - フィドル - > https://jsfiddle.net/embtpspL/1/ – Stender

関連する問題