0

どのラジオ ボタンが選択されているかに基づいて、チェックボックスの disabled および value 属性を編集する際に問題が発生しています。

この関数は、input#package-1 を選択してから input#highlighted を選択すると機能します。ただし、input#package 1 を再度選択すると失敗します。これを行うと、チェックボックスの値は変更されませんが (これは正しくありません)、無効な属性は削除されます (正しい)。

どんな助けでも大歓迎です。

$(document).ready(function(){
    $('.package-select').change(function(){
       if ($('#package-2').is(':checked') || $('#package-1').is(':checked') ){
             $('input#extrasRouter').removeAttr('disabled');
             $('input#extrasRouter').val("36-Wireless router - £44.99 - TEST"); // Changing value to select the PAID FOR router 

         } else {
             $('input#extrasRouter').val("21-Wireless router - FREE");
             $('input#extrasRouter').attr('disabled', true);     
         }   
    });
});


<!-- Radio button that are being selected which should affect the below checkbox -->
        <label for="package-3" class="package-select" id="tb-package-3">
            <span class="name">Home Worker 20</span>
            <input type="radio" value="16-Home Worker 20 - &pound;35 per month" id="package-3" class="validate required" name="package">
        </label>

        <label for="highlighted" class="package-select" id="tb-highlighted">
            <span class="name">Home 20</span>
            <input type="radio" value="10-Home 20 - &pound;22 per month" id="highlighted" class="validate required" name="package">
        </label>

        <label for="package-2" class="package-select" id="tb-package-2">
            <span class="name">Home 10</span>
            <input type="radio" value="12-Home 10 - &pound;17 per month" id="package-2" class="validate required" name="package">
        </label>

        <label for="package-1" class="package-select" id="tb-package-1">
            <span class="name">Basic</span>
            <input type="radio" value="13-Basic - &pound;10 per month" id="package-1" class="validate required" name="package" >
        </label>

<!-- Checkbox that is being edited -->
<input type="checkbox" checked="" name="options[]" id="extrasRouter" value="21-Wireless router - &pound;44.99"   />
4

1 に答える 1

0

checkedはプロパティであり、属性ではありません。これらを変更します。

$('input#extrasRouter').removeAttr('disabled');
...
$('input#extrasRouter').attr('disabled', true);

これらに:

$('input#extrasRouter').prop('disabled', false);
...
$('input#extrasRouter').prop('disabled', true);

また、ボックスが無効になっている間ではなく、無効にする前/再度有効にした後に値を設定してみてください。

于 2013-03-12T12:09:38.577 に答える