Próbowałem już wszystkich możliwych sposobów, ale nadal nie działałem. Mam okno modalne z checkbox
opcją Chcę, aby gdy modal się otworzył, checkbox
zaznaczenie lub odznaczenie powinno opierać się na wartości bazy danych. (Mam to już działa z innymi polami formularza). Zacząłem sprawdzać, ale to nie działa.
Mój html div:
<div id="fModal" class="modal" >
...
<div class="row-form">
<div class="span12">
<span class="top title">Estado</span>
<input type="checkbox" id="estado_cat" class="ibtn">
</div>
</div>
</div>
i jquery:
$("#estado_cat").prop( "checked", true );
Próbowałem też z attr
innymi i widziałem je tutaj na forach, ale żadne nie wydaje się działać. Czy ktoś może wskazać mi właściwą drogę?
EDYCJA: ok, naprawdę brakuje mi czegoś ... Mogę zaznaczyć / odznaczyć za pomocą kodu, jeśli pole wyboru znajduje się na stronie, ale czy jest w oknie modalnym, nie mogę. Próbowałem dziesiątek różnych sposobów ...
Mam link, który powinien otworzyć modal:
i jquery do „nasłuchiwania” kliknięcia i wykonania niektórych operacji, takich jak wypełnienie niektórych pól tekstowych danymi pochodzącymi z bazy danych. Wszystko działa tak, jak chcę, ale problem polega na tym, że nie mogę ustawić pola wyboru zaznaczonego / niezaznaczonego za pomocą kodu. prosimy o pomoc!
$(function() {
$(".editButton").click(function(){
var id = $(this).data('id');
$.ajax({
type: "POST",
url: "process.php",
dataType:"json",
data: { id: id, op: "edit" },
}).done(function( data ) {
//the next two lines work fine, i.e., it grabs the value from database and fills the textboxes
$("#nome_categoria").val( data['nome_categoria'] );
$("#descricao_categoria").val( data['descricao_categoria'] );
//then I tried to set the checkbox checked (because its unchecked by default) and it does not work
$("#estado_cat").prop("checked", true);
$('#fModal').modal('show');
});
evt.preventDefault();
return false;
});
});
Odpowiedzi:
musisz użyć funkcji „prop”:
Przed wersją jQuery 1.6 (patrz odpowiedź user2063626 ):
źródło
Biorąc wszystkie proponowane odpowiedzi i stosując je do mojej sytuacji - próbując zaznaczyć lub odznaczyć pole wyboru w oparciu o pobraną wartość true (należy zaznaczyć pole) lub false (nie należy zaznaczyć pola) - wypróbowałem wszystkie powyższe i stwierdzono, że użycie .prop („zaznaczone”, true) i .prop („zaznaczone”, false ) były poprawnym rozwiązaniem.
Nie mogę jeszcze dodawać komentarzy ani odpowiedzi, ale czułem, że było to na tyle ważne, aby dodać do rozmowy.
Oto kod długiej modyfikacji pełnej kalendarza, który mówi, że jeśli pobrana wartość „allDay” jest prawdziwa, to zaznacz pole wyboru o identyfikatorze „even_allday_yn”:
źródło
$( "#even_allday_yn").prop('checked', allDay);
$('#even_allday_yn').prop('checked', allDay === true)
będzie działać, ponieważallDay === true
daje wynik logiczny.Stary, spróbuj poniżej kodu:
LUB
LUB
źródło
.prop('checked', true)
zamiastattr
- właśnie natrafiłem na ten sam problem iprop
działa.:checked
pseudoselektora lub innych natywnych funkcji HTML w polu wyboru, musisz użyć.prop
..attr()
jest sposobem na wcześniejsze wersje,.prop()
dla jQuery 1.6+.„zaznaczony” atrybut „zaznacza” pole wyboru, gdy tylko istnieje. Aby zaznaczyć / odznaczyć pole wyboru, musisz ustawić / odznaczyć atrybut.
Aby zaznaczyć pole:
Aby odznaczyć pole:
Aby przetestować sprawdzony status:
Mam nadzieję, że to pomoże...
źródło
Ponieważ jesteś w oknie modalnym (dynamicznym lub na stronie), możesz użyć następującego kodu, aby osiągnąć swój cel: (Natknąłem się na ten sam problem na mojej stronie i tak go naprawiłem)
HTML:
KOD:
W powyższym „kendoWindow” jest moje okno (moje jest dynamiczne, ale robię to również, dodając do elementu bezpośrednio na stronie). Pętlę przez tablicę danych („queriesToAddToGroup”), aby sprawdzić, czy jakieś wiersze mają atrybut COPY. Jeśli tak, chcę włączyć pole wyboru w oknie, które ustawia ten atrybut, gdy użytkownik zapisuje dane z tego okna.
źródło
prop
jak sugeruje ta odpowiedź, jest PRAWIDŁOWYM sposobem na wykonanie dynamicznego sprawdzania / odznaczania pola wyboru jQuery.zadziała. Upewnij się, że prawda i fałsz nie znajdują się w cudzysłowie.
źródło
.prop('checked', true);
Więcej informacji w tym poście.attr()
działał zgodnie z opisem.Możesz napisać jak poniżej podany kod.
HTML
jQuery
Mam nadzieję, że to zadziała.
źródło
Jeśli chcesz użyć tej funkcji w skrypcie GreaseMonkey do automatycznego zaznaczania pola wyboru na stronie, pamiętaj, że samo ustawienie zaznaczonej właściwości może nie wyzwalać powiązanej akcji. W takim przypadku „kliknięcie” pola wyboru prawdopodobnie spowoduje (i ustawienie również zaznaczonej właściwości).
źródło
Znajdź zwróci tablicę, więc użyj [0], aby uzyskać, nawet jeśli jest tylko jeden element
jeśli nie użyjesz find, to
działało to dobrze w Mozilla Firefox dla mnie
źródło
Pracował dla mnie:
źródło
Spróbuj, ponieważ prawdopodobnie używasz jQuery UI (jeśli nie, proszę o komentarz)
źródło
Czy próbowałeś uruchomić
$("#estado_cat").checkboxradio("refresh")
na swoim polu wyboru?źródło
To działa.
źródło
Też napotkałem ten problem.
i oto mój stary nie działa kod
oto mój nowy kod, który działa teraz:
więc kluczowym punktem jest, zanim zadziała, upewnij się, że sprawdzona właściwość istnieje i nie została usunięta.
źródło
Jbookaccess.prop("checked", data.access != 'private');
Dzieje się tak, ponieważ najnowsza wersja jquery
attr('checked')
zwraca'checked'
podczasprop('checked')
powrotutrue
.źródło
źródło
Ustaw pole wyboru po załadowaniu okna modalnego. Myślę, że ustawiasz pole wyboru przed załadowaniem strony.
źródło
Wiem, że prosi o rozwiązanie Jquery, ale po prostu wskazałbym, że bardzo łatwo można przełączać to w zwykłym javascript.
Będzie działać we wszystkich obecnych i przyszłych wersjach.
źródło
Pamiętaj, aby odpowiednio zwiększyć identyfikator i atrybut. Dla pola wyboru Dynamicznie dodany pasek startowy.
źródło