Przypisz wartość początkową do przycisku opcji jako zaznaczonego

138

Jak początkowo przypisać wartość przycisku opcji zaznaczoną w HTML?

Rinkal Bhanderi
źródło

Odpowiedzi:

164

Możesz użyć tego checkedatrybutu:

<input type="radio" checked="checked">
polarblau
źródło
11
możesz również wspomnieć o tym atrybucie bez przypisanej wartości, np. <input type = "radio" zaznaczone>
niksvp
1
@niksvp Wierzę, że check = "zaznaczone" to właściwy sposób wstępnego sprawdzenia przycisku opcji - samo użycie "zaznaczone" nie jest poprawnym kodem HTML (mimo że jest obsługiwany przez większość przeglądarek)
Matt Healy,
9
@matthewh - nie, możesz użyć samego "zaznaczonego" i jest to poprawny HTML (chociaż nie poprawny XHTML). Osobiście wolę 'zaznaczone = "zaznaczone"', ale nie musisz go używać ... rzeczywiście, jest całkiem mocny argument przeciwko używaniu go.
Algy Taylor
55

Możesz po prostu użyć:

<input type="radio" checked />

Używanie tylko sprawdzonego atrybutu bez podawania wartości jest tym samym, co checked="checked".

seedg
źródło
jak stwierdził @Matt Healey, użycie zaznaczenia bez atrybutu nie jest poprawnym
kodem
16
@salvob nieprawidłowy. to nie jest ważne X html, jednak jest całkowicie poprawny dla HTML5, który jest tak globalnym standardem, jak cokolwiek kiedykolwiek będzie.
Chris Marisic,
14

Podałem tę odpowiedź na podobne pytanie, które zostało oznaczone jako duplikat tego pytania. Odpowiedź pomogła przyzwoitej liczbie ludzi, więc pomyślałem, że dodam ją tutaj na wszelki wypadek.

To nie jest dokładną odpowiedzią na pytanie, ale dla każdego, kto próbuje to osiągnąć, używając AngularJS, odpowiedź jest nieco inna. I faktycznie normalna odpowiedź nie zadziała (przynajmniej nie zadziałała dla mnie).

Twój kod HTML będzie wyglądał podobnie do zwykłego przycisku opcji:

<input type='radio' name='group' ng-model='mValue' value='first' />First
<input type='radio' name='group' ng-model='mValue' value='second' /> Second

W swoim kontrolerze zadeklarowałeś, mValueże jest powiązany z przyciskami radiowymi. Aby jeden z tych przycisków radiowych był wstępnie wybrany, przypisz $scopezmienną związaną z grupą do żądanej wartości wejścia:

$scope.mValue="second"

To sprawia, że ​​"drugi" przycisk opcji jest wybierany podczas ładowania strony.

discodane
źródło
W rzeczy samej! Powyższe odpowiedzi nie działają z Angular JS. Twoja odpowiedź rozwiązała mój problem. Dzięki! :)
Mitaksh Gupta
3

Dla każdego, kto szuka rozwiązania Angular2 (2.4.8), ponieważ jest to ogólnie popularne pytanie podczas wyszukiwania:

<div *ngFor="let choice of choices">
  <input type="radio" [checked]="choice == defaultChoice">
</div>

Spowoduje to dodanie checked atrybutu do wejścia podanego warunku, ale nic nie doda, jeśli warunek się nie powiedzie.

Nie rób tego:

[attr.checked]="choice == defaultChoice"

ponieważ spowoduje to dodanie atrybutu checked="false"do każdego innego elementu wejściowego.

Ponieważ przeglądarka szuka tylko checkedatrybutu ( klucza ), ignorując jego wartość, więc ostatnie wejście w grupie zostanie sprawdzone.

msanford
źródło
2

Innym sposobem ustawienia domyślnego zaznaczenia na przyciskach radiowych, szczególnie jeśli używasz angularjs, jest ustawienie flagi „ng-check” na „true”, np .: <input id="d_man" value="M" ng-disabled="some Value" type="radio" ng-checked="true"> Man

zaznaczone = "zaznaczone" nie działa dla mnie ..

Deepika Pethaperumal
źródło
Przyczyna ng-checked="true"pochodzi z repertuaru angularjs.
Augustas
Lub ustaw wartość modelu w kontrolerze na „true”. Uważaj, aby ustawić go na łańcuch, a nie na wartość logiczną!
Thomas David Kehoe,
2

Zwróć uwagę, że jeśli masz dwa przyciski opcji z tym samym atrybutem „nazwa” i mają one atrybut „wymagany”, dodanie do nich atrybutu „zaznaczone” nie spowoduje ich zaznaczenia.

Przykład: powoduje to, że oba przyciski opcji pozostają niezaznaczone.

<input type="radio" name="gender" value="male" required <?php echo "checked"; ?>/>
<input type="radio" name="gender" value="female" required />

Spowoduje to zaznaczenie przycisku opcji „męski”.

<input type="radio" name="gender" value="male" <?php echo "checked"; ?>/>
<input type="radio" name="gender" value="female" />
YZ Zhe
źródło
1

Trochę spóźniłem się na imprezę i wiem, że OP powiedział html, ale jeśli trzeba to zrobić w MVC możesz ustawić true trzeci parametr.

na przykład:

    <p>Option One :@Html.RadioButton("options", "option1", true})</p>
    // true will set it checked

     <p>Option Two :@Html.RadioButton("options", "option2"})</p>
     //nothing will leave it unchecked
user2903379
źródło
0

Jeśli używasz react-redux w swojej aplikacji i chcesz pokazać dane, które są w sklepie redux, możesz ustawić opcję "zaznaczone" jak poniżej.

<label>Male</label>

 <input
   type="radio"
   name="gender"
   defaultChecked={this.props.gender == "0"}
 />



 <label>Female</label>
 <input
   type="radio"
   name="gender"
   defaultChecked={this.props.gender == "1"}
 />
Ruks
źródło