WebHU - Programozási kérdések és válaszok

A jelölőnégyzet már nem ellenőrzi, hogy a Jquery Toggle funkcióval együtt használják-e?

Van egy jelölőnégyzetem, amely bejelölése esetén engedélyez néhány rádiógombot alatta.

Ha a jelölőnégyzet nincs bejelölve, akkor az alábbi választógombok le vannak tiltva, és ha maguk is be vannak jelölve, akkor a bejelölések megszűnnek.

Ehhez a váltó funkciót használtam:

$( "#mycheckbox" ).toggle(function() {
    $('#radiobuttons input').attr('disabled', false);
}, function() {
    $('#radiobuttons input').attr('disabled', true);
    $('#radiobuttons input').removeAttr('checked');
});

Most azonban, hogy a jelölőnégyzetemet a Toggle funkcióban használják, ez önmagában nem ellenőrzi.

Megpróbáltam javítani:

$( "#mycheckbox" ).toggle(function() {
    $('#radiobuttons input').attr('disabled', false);
    $("#mycheckbox").attr('checked','checked');
}, function() {
    $('#radiobuttons input').attr('disabled', true);
    $('#radiobuttons input').removeAttr('checked');
    $("#mycheckbox").removeAttr('checked');
});

De ez sem sikerült.

Tud valaki erre módot?

Fiddle:http://jsfiddle.net/P95xg/3/

Jquery verzió: 1.4.3

HTML:

<label>
    <input type="checkbox" name="mycheckbox" id="mycheckbox" value="Y" />
    <span><strong> Label text here </strong></span>
</label>

<div id="radiobuttons">
<label class="hit"><input type="radio" name="accommodation" value="Standard Room Cat 1" />
    <span>
        <strong>Standard Room Category 1 </strong>
    </span>
    </label>

    <label class="hit"><input type="radio" name="accommodation" value="Standard Room Cat 2" />
    <span>
        <strong>Standard Room Category 2 </strong>
    </span>
    </label>
</div>

  • megosztanád a html-t? 23.03.2014
  • szerkesztheti a jsfiddle.net/arunpjohny/P95xg/1 hegedűt a probléma újbóli létrehozásához 23.03.2014
  • @ArunPJohny hozzáadta a HTML és a JQ verziót 23.03.2014
  • @ArunPJohny Frissítettem a Fiddle jsfiddle.net/P95xg/3 23.03.2014

Válaszok:


1

Próbálkozzon a .change() használatával a toggle() helyett

var $radios = $('#radiobuttons input');
$("#mycheckbox").change(function (e) {
    $radios.attr('disabled', !this.checked);
    if(!this.checked){
        $radios.removeAttr('checked');
    }
});

Demo: Fiddle

Megjegyzés: Még mindig nem találta meg az említett viselkedés okát

23.03.2014
  • Köszönöm, de nem tudom – az én Jquery verzióm nem támogatja 23.03.2014
  • A @MeltingDog a jQuery 1.4.3-mal működik – jsfiddle.net/arunpjohny/P95xg/6 23.03.2014

  • 2

    A toggle függvény az elemek megjelenítésére és elrejtésére szolgál.

    Azt tanácsolom, hogy adjon hozzá egy eseménykezelőt a jelölőnégyzethez, amely ellenőrzi, hogy a jelölőnégyzet be van-e jelölve, majd engedélyezi vagy letiltja a rádiógombokat.

    Valami ilyesmi:

    (function () {
        // Store our radio buttons and checkbox:
        var radioButtons = $('#radiobuttons input'),
            checkbox = $('#checkbox');
    
        // Add an event handler:
        checkbox.on('change', function () {
            // When our checkbox is checked, the radioButtons become active:
            radioButtons.prop('disabled', !checkbox.prop('checked'));
        });
    }());
    
    23.03.2014
  • Köszönöm – ez egy jó válasz, de a .prop() nem kompatibilis az én JQ verziómmal 23.03.2014
  • Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..