2013-09-30 18 views
35

W przypadku, gdy nr 1 działa, w przypadku nr 2 nie działa. Sprawdź ryk kod:Przycisk radiowy "sprawdzono" przycisk Bootstrap

<div class="container"> 
    <div class="row"> 
     <h1>Radio Group #1</h1> 
     <label class="radio-inline"> 
      <input name="radioGroup" id="radio1" value="option1" type="radio"> 1 
     </label> 
     <label class="radio-inline"> 
      <input name="radioGroup" id="radio2" value="option2" checked="checked" type="radio"> 2 
     </label> 
     <label class="radio-inline"> 
      <input name="radioGroup" id="radio3" value="option3" type="radio"> 3 
     </label> 
    </div> 
    <div class="row"> 
     <h1>Radio Group #2</h1> 
     <label for="year" class="control-label input-group">Year</label> 
     <div class="btn-group" data-toggle="buttons"> 
      <label class="btn btn-default"> 
       <input name="year" value="2011" type="radio">2011 
      </label> 
      <label class="btn btn-default"> 
       <input name="year" value="2012" type="radio">2012 
      </label> 
      <label class="btn btn-default"> 
       <input name="year" value="2013" checked="checked" type="radio">2013 
      </label> 
     </div> 
    </div> 
</div> 

Można zobaczyć go w akcji tutaj: http://bootply.com/84165

+1

Co nie działa? – Trevor

Odpowiedz

69

Zakładając chcesz sprawdzane przycisk domyślny.

<div class="row"> 
    <h1>Radio Group #2</h1> 
    <label for="year" class="control-label input-group">Year</label> 
    <div class="btn-group" data-toggle="buttons"> 
     <label class="btn btn-default"> 
      <input type="radio" name="year" value="2011">2011 
     </label> 
     <label class="btn btn-default"> 
      <input type="radio" name="year" value="2012">2012 
     </label> 
     <label class="btn btn-default active"> 
      <input type="radio" name="year" value="2013" checked="">2013 
     </label> 
    </div> 
    </div> 

Dodaj klasę active przycisku (label tag) chcesz defaulted i checked="" jego input tagu tak robi składane w formie domyślnie.

+0

Dzięki @Trevor. Przycisk jest teraz sprawdzany, ale po przesłaniu formularza nie rozumie go jako sprawdzony. Jeśli ręcznie kliknę w inne opcje bez "aktywnego", osoba przesyłająca może zrozumieć wartość. Z aktywnym 2013, jeśli klikam w 2011 roku, na przykład, i kliknij ponownie w 2013 roku i prześlij formularz, który działa. Czy masz jakąś ideię? Dzięki jeszcze raz. – Khrys

+1

wygląda następująco: http://stackoverflow.com/questions/11462434/twitter-bootstrap-radio-buttons-not-working – Khrys

+0

Oh w takim przypadku spróbuj dodać 'sprawdzane =„”' do elementu wejściowego, jak również. Zaktualizuję moją odpowiedź. – Trevor

14

javascript fix zastosować klasę 'aktywny' do wszystkich etykiet, które są rodzice sprawdzanych wejść:

$(':input:checked').parent('.btn').addClass('active'); 

wkładka tuż po

$('.btn').button(); 
+0

Jeśli masz kłopoty z przycisków nie zostanie podświetlona po uderzeniu „Wstecz”, ten fragment kodu JavaScript poprawek. Dzięki, @rawrkats. –

+1

Lubię to rozwiązanie najlepsze, ale użyłem '$ ("btn-grupy"). Find ('input: checked') rodzica addClass ('aktywny ');' tak, że.. (' BTN.'). działa szybciej na stronach, które nie mają żadnego z nich. –

1

Stosować aktywny klasa z etykiecie aby automatycznie wybrać i użyć checked="".

<label class="btn btn-primary active" value="regular" style="width:47%"> 
    <input type="radio" name="service" checked="" > Regular </label> 
    <label class="btn btn-primary " value="express" style="width:46%"> 
    <input type="radio" name="service"> Express </label> 
1

Musisz użyć aktywnego w etykiecie, aby działało jak wspomniano powyżej. Ale możesz użyć checked = "checked" i to też zadziała. Nie jest to konieczne, ale jest bardziej czytelne i ma więcej sensu, ponieważ jest bardziej zgodne z formatem html.

Powiązane problemy