Porównaj ceny domen i usług IT, sprzedawców z całego świata

Pobieranie aktualnie wybranej wartości przycisku radiowego przy użyciu jQuery


W MVC mogę zdefiniować zestaw przycisków radiowych w następujący sposób:
@Html.RadioButtonFor(x => x.hasAcceptedAgreement, true) Yes
@Html.RadioButtonFor(x => x.hasAcceptedAgreement, false) No

co on robi
<input id="hasAcceptedAgreement" name="hasAcceptedAgreement" type="radio" value="True"/> Yes
<input id="hasAcceptedAgreement" name="hasAcceptedAgreement" type="radio" value="False"/> No

Chcę wyłączyć lub włączyć element div w zależności od tego, który element jest wybrany, co udało mi się zrobić z tym fragmentem jQuery:
$(':radio[name=hasAcceptedAgreement]').change(function () {
if ($(this).val() == 'True') {
// display div
} else {
// hide div
}
});

Ale kiedy przesyłają formularz, muszę również sprawdzić, która wartość jest aktualnie wybrana, a następnie ponownie pokazać/ukryć odpowiednią sekcję (ponieważ funkcja .change nie zostanie wywołana w POST). Czy jest na to sposób?
Jeśli spróbuję to zrobić, jeśli $ (': radio [name = hasAcceptedAgreement]') .val () zawsze będzie True, ponieważ identyfikatory są takie same (zakładam). Czy istnieje inny sposób uzyskania tej wartości, czy też idę w górę, ponieważ MVC lubi nadawać tę samą nazwę każdemu identyfikatorowi?
EDYCJA: Nawiasem mówiąc, wiem, że mogę po prostu ręcznie ustawić identyfikatory w wywołaniu RadioButtonFor - po prostu zastanawiałem się, czy istnieje prostszy wbudowany sposób obsługi tego, którego nie byłem świadomy.
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jak mówią tutaj:

jak mogę się dowiedzieć, które radio jest wybrane przez jQuery?
https://coderoad.ru/596351/
możesz użyć:
$('input[name=hasAcceptedAgreement]:checked').val()

aby uzyskać wartość aktualnie wybranego radia.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Użyłem poniższego kodu w projekcie, nad którym pracowałem i zadziałało!
$(':radio[name=hasAcceptedAgreement]').change(function () {
if ($('input[name=hasAcceptedAgreement]:checked').val() == 'True') {
// display div
} else {
// hide div
}
});
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

$(function(){
// executed once the dom is loaded// bind the change function as usual
$(':radio[name=hasAcceptedAgreement]').change(function () {
if ($(this).val() == 'True') {
// display div
} else {
// hide div
}
}).change();// and immediately trigger it
});

Małe ulepszenie obsługi zmian (więc nie potrzebujesz bloku if/else)
$("#yourdiv").toggle( $(this).val() == 'True' );

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się