Odznaczenie radio button

Odznaczenie radio button
M4
  • Rejestracja:około 10 lat
  • Ostatnio:prawie 5 lat
  • Postów:221
0

Mam w react.js prosty formularz i w jednym miejscu używam radio button, z pobraniem zawartości nie mam problemu ale przycisk nie odznacza się po wysłaniu formularza albo zmianie na inny radio button, do każdego radio button jest atrybut name ale nie wiem w jaki sposób się do niego odwołać. Jakieś sugestie jak sobie z tym poradzić?

Dodam, że dopiero zaczynam z react

edytowany 1x, ostatnio: Mattii4211
Akihito
Radio button przeciez wymaga wyboru, jesli chcesz miech opconalny wybor to cheackbox do tego sluzy
cerrato
Moderator Kariera
  • Rejestracja:około 7 lat
  • Ostatnio:około 10 godzin
  • Lokalizacja:Poznań
  • Postów:8796
0

Jakbyś wrzucił jakiś kod to na pewno by było łatwiej coś napisać :P


M4
  • Rejestracja:około 10 lat
  • Ostatnio:prawie 5 lat
  • Postów:221
0

Ok racja z tym checkboxem tylko teraz nie działa mi zapisywanie wybranej opcji. Poniżej kod :

Kopiuj
<label>Male</label>
            <input type="checkbox" value="Male" name="gender" onChange={this.handleChangeGender}></input>
            <label>Female</label>
            <input type="checkbox" value="Female" name="gender" onChange={this.handleChangeGender}></input>
            <label>Other</label>
            <input type="checkbox" value="Other" name="gender" onChange={this.handleChangeGender}></input>
Kopiuj
handleChangeGender(e) {
    this.setState({ geder: e.currentTarget.value });
  }
cerrato
Moderator Kariera
  • Rejestracja:około 7 lat
  • Ostatnio:około 10 godzin
  • Lokalizacja:Poznań
  • Postów:8796
2

Nie wiem czy to może mieć jakies znaczenie, ale rzuciła mi się w oczy literówka.
W pierwszym kodzie masz name="gender", natomiast w drugim setState({ geder: e.currentTarget.
To jak powinno być - geder czy geNder?
Oczywiście, być może nie ma to związku ze sprawą, ale zacząłbym od wyjaśnienia tej kwestii.


M4
  • Rejestracja:około 10 lat
  • Ostatnio:prawie 5 lat
  • Postów:221
0

Jednak literówka nie powodowała błędu

cerrato
Moderator Kariera
  • Rejestracja:około 7 lat
  • Ostatnio:około 10 godzin
  • Lokalizacja:Poznań
  • Postów:8796
0

Wrzuciłem Twój kod na jsfiddle - https://jsfiddle.net/epgcwydL/ , a następnie spojrzałem na to i zastanawiam się, czy dobrze to robisz.

Nie wiem, co chcesz osiągnąć, ale raczej tutaj nie dawałbym checkbox tylko jakieś radio - coś na kształt https://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_input_type_radio. No bo w tym, co Ty zrobiłeś można zaznaczyć jednocześnie płeć męską i damską/żeńską. O ile nie mówimy teraz o ślimakach, tylko ludziach - takie coś jest chyba błędne :D


M4
Tak miałem na początku ale zaznaczenie zostaje nawet po wysłaniu formularza a chciałby, żeby każde ratio było unchecked
cerrato
@Neutral: ale czy gdzieś podałem nieprawdziwe informacje, albo wklejony przeze mnie link wprowadza w błąd, czy po prostu nie podoba Ci się "w imię zasad", że się odwolalem do w3schools?
Neutral
O ile dobrze pamiętam, to autor - Comandeer, nie zaleca korzystania z tych źródeł. Pisał, że istnieją o wiele lepsze źródła, z których można pozyskać informacje. Ogólnie, tak tylko wrzuciłem do poczytania i zastanowienia się, czy wrzucając link do w3schools poprawnie czynisz/namawiasz do korzystania z tychże źródeł.
cerrato
fajnie, że zwróciłeś uwagę na to, że W3schools może bredzić. Na szczęście póki co nie miałem z nimi niefajnych przejść. A dając link do jakiegoś rozwiązania nie polecam konkretnej strony, a jedynie wpis, który dotyczy danego tematu i który moim zdaniem dobrze ilustruje problem. Niemniej dzięki za ostrzeżenie, będę się W3S baczniej przyglądać w przyszłości.
M4
  • Rejestracja:około 10 lat
  • Ostatnio:prawie 5 lat
  • Postów:221
0
Kopiuj
<form>
            <label className="male">Male
            <input type="radio" value="Male" name="gender" onChange={this.handleChangeGender}></input></label>
            <label className="female">Female
            <input type="radio" value="Female" name="gender" onChange={this.handleChangeGender}></input></label>
            <label className="other">Other
            <input type="radio" value="Other" name="gender" onChange={this.handleChangeGender}></input></label>
         </form>

i jak dostać się do inputa, który go wywołał, żeby np zaznaczyć unchecked ?

cerrato
Moderator Kariera
  • Rejestracja:około 7 lat
  • Ostatnio:około 10 godzin
  • Lokalizacja:Poznań
  • Postów:8796
3

Tak miałem na początku ale zaznaczenie zostaje nawet po wysłaniu formularza a chciałby, żeby każde ratio było unchecked

Ale kto powiedział, że nie da się usunąć zaznaczenia z elementów typu radio?
Zrobiłem tak na szybko - pobaw się i potestuj - https://jsfiddle.net/59v3haoL/.
Przy okazji pewnie rozwiązałem Twój problem podany wcześniej - czyli czyszczenie powysłaniu.

A tak w ogóle to mam prośbę - nie popadaj w paranoję poprawności politycznej i wywal OTHER. Mamy dwie płcie i nie kombinujmy w tym zakresie, OK? :P


edytowany 2x, ostatnio: cerrato
M4
hahha ok ale to kod z w3schools xd :);)
M4
  • Rejestracja:około 10 lat
  • Ostatnio:prawie 5 lat
  • Postów:221
0

Ale dzięki, bo własnie o to mi chodziło :)

M4
  • Rejestracja:około 10 lat
  • Ostatnio:prawie 5 lat
  • Postów:221
0

A jeszcze szybkie pytanko: Czy, albo raczej jak w react otworzyć nową kartę? Powiedzmy, że mam w 1 klasie button i jak go wcisnę chcę, żeby wyświetliła się zawartość innej klasy (coś a href nie działa)

Chramar
  • Rejestracja:około 7 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Poznań
  • Postów:46
1

Albo tworzysz w komponencie instrukcje warunkową przy renderowaniu, której wynik przestawiasz tym przyciskiem (https://reactjs.org/docs/conditional-rendering.html) albo dodajesz sobie do projektu react-router i korzystając z niego przechodzisz po prostu na jakąś podstronę z drugą zawartością.

M4
  • Rejestracja:około 10 lat
  • Ostatnio:prawie 5 lat
  • Postów:221
0

A czy jest jakaś funkcja, która wyczyści tablicę w react?

Chramar
Co masz na myśli poprzez "wyczyści tablicę"? Sprawi, że tablica (np. [1,2,3,4]) będzie pusta? Wyczyści widok tablicowy pomiędzy znacznikami <table>? Sprecyzuj, proszę, pytanie, a najlepiej wklej kawałek kodu, w którym chcesz coś zrobić.
M4
sprawi, że tab[1,2,3..] będzie pusta
Chramar
To zrób po prostu tab=[] :P
M4
super, dzięki ;):)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.