2012-07-25 8 views
20

Mit jQ-ui der buttonset FunktionAuswahl aufheben JQuery Radio buttonset auf einmal

<script> 
    $(function() { 
     $("#radio").buttonset(); 
    }); 
    </script> 


    <div id="radio"> 
     <input type="radio" id="radio1" name="radio" /><label for="radio1">Choice 1</label> 
     <input type="radio" id="radio2" name="radio" checked="checked" /><label for="radio2">Choice 2</label> 
     <input type="radio" id="radio3" name="radio" /><label for="radio3">Choice 3</label> 
    </div> 

Gibt es eine Möglichkeit, alle Radio-Buttons von buttonset gleichzeitig zu deaktivieren?

+0

sollte '$ (" #radio ")' stattdessen $ ("radio") 'sein? – fcalderan

+1

@Dev hast du jemals jQ-UI benutzt? – heron

Antwort

31

Sie können sie deaktivieren mit den folgenden (aktualisiert für jQuery UI 1.9:..

$('#radio input').removeAttr('checked'); 
// Refresh the jQuery UI buttonset.     
$("#radio").buttonset('refresh'); 
​ 

JSFiddle Arbeiten

+0

Schön. Die Antwort wird immer kürzer. :) – albertjan

+0

Diese Geige scheint nicht erfolgreich die Radio-Schaltflächen in eine jQuery UI-Button-Set zu verwandeln, weshalb es scheint zu funktionieren. Es stimmt nicht, dass Frédéric Recht hat, dass Sie die Aktualisierung durchführen müssen. –

+0

Dies funktioniert nicht in jQuery 1.9 und wirkt sich nicht auf jQuery UI Buttonsets aus. Die Antwort unten ist die bessere Antwort. – CoryDorning

15

Sie alle Radio-Buttons bieten kann und prop() sie deaktivieren verwenden

Sie müssen das Buttonset-Widget jedoch auch nach dem Aktualisieren aktualisieren:

$("#radio").find("input:radio").prop("checked", false).end() 
      .buttonset("refresh"); 
+0

Das ist gut !!! – karancan

13

Bevor jQuery 1.6 Version

$(':radio').attr('checked', false); 

ODER

$(':radio').removeAttr('checked'); 

Nach jQuery 1.6+

$(':radio').prop('checked', false); 

ODER

$(':radio').removeProp('checked'); 
1

Dies wurde durch Zufall entdeckt ... mit jQuery 1.9.1 unter Verwendung eines Klassennamens für den Buttonsatz blieben zunächst alle Tasten frei. Noch nicht sicher, ob es Konsequenzen hat, aber nützlich zu wissen.

$("div.myclass").buttonset(); 

<div id="myDiv" class="myclass"> 
    <input type="radio" name="myname" id="id1" value="1"><label for="id1">Label1</label> 
    <input type="radio" name="myname" id="id2" value="2"><label for="id2">Label2</label> 
    <input type="radio" name="myname" id="id3" value="3"><label for="id3">Label2</label> 
</div> 
Verwandte Themen