Ich habe bereits alle möglichen Wege ausprobiert, aber ich habe es immer noch nicht zum Laufen gebracht. Ich habe ein modales Fenster mit einem checkbox
Ich möchte, dass beim checkbox
Öffnen des Modals das Aktivieren oder Deaktivieren auf einem Datenbankwert basieren sollte. (Ich habe das bereits mit anderen Formularfeldern gemacht.) Ich habe versucht, es überprüfen zu lassen, aber es hat nicht funktioniert.
Mein 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>
und die jquery:
$("#estado_cat").prop( "checked", true );
Ich habe es auch mit versucht attr
und andere hier in den Foren gesehen, aber keine scheint zu funktionieren. Kann mir jemand den richtigen Weg weisen?
EDIT: ok, mir fehlt hier wirklich etwas ... Ich kann mit Code aktivieren / deaktivieren, wenn sich das Kontrollkästchen auf der Seite befindet, aber es befindet sich im modalen Fenster, kann ich nicht. Ich habe Dutzende verschiedener Möglichkeiten ausprobiert ...
Ich habe einen Link, der das Modal öffnen soll:
und jquery, um den Klick zu "hören" und einige Operationen auszuführen, wie das Füllen einiger Textfelder mit Daten, die aus der Datenbank stammen. Alles funktioniert wie ich will, aber das Problem ist, dass ich das Kontrollkästchen nicht mit Code aktivieren / deaktivieren kann. Hilfe bitte!
$(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;
});
});
Antworten:
Sie müssen die 'Prop'-Funktion verwenden:
Vor jQuery 1.6 (siehe Antwort von user2063626 ):
quelle
Ich nahm alle vorgeschlagenen Antworten und wandte sie auf meine Situation an. Ich versuchte, ein Kontrollkästchen basierend auf dem abgerufenen Wert true (sollte das Kontrollkästchen aktivieren) oder false (sollte das Kontrollkästchen nicht aktivieren) zu aktivieren oder zu deaktivieren. Ich versuchte alle oben genannten und fanden heraus, dass die Verwendung von .prop ("geprüft", wahr) und .prop ("geprüft", falsch ) die richtige Lösung war.
Ich kann noch keine Kommentare oder Antworten hinzufügen, aber ich fand, dass dies wichtig genug war, um die Konversation zu erweitern.
Hier ist der Langzeilcode für eine vollständige Kalenderänderung, der besagt, wenn der abgerufene Wert "allDay" wahr ist, aktivieren Sie das Kontrollkästchen mit der ID "even_allday_yn":
quelle
$( "#even_allday_yn").prop('checked', allDay);
$('#even_allday_yn').prop('checked', allDay === true)
wird funktionieren, weilallDay === true
es ein boolesches Ergebnis gibt.Alter versuchen Sie unten Code:
ODER
ODER
quelle
.prop('checked', true)
anstelle vonattr
- Ich bin gerade auf dasselbe Problem gestoßen und esprop
funktioniert.:checked
Pseudo-Selektor oder andere native HTML-Funktionen des Kontrollkästchens verwenden möchten , müssen Sie diese verwenden.prop
..attr()
ist der.prop()
richtige Weg für frühere Versionen für jQuery 1.6+.Das Attribut "markiert" aktiviert das Kontrollkästchen, sobald es vorhanden ist. Um ein Kontrollkästchen zu aktivieren / deaktivieren, müssen Sie das Attribut setzen / deaktivieren.
Zum Aktivieren des Kontrollkästchens:
Zum Deaktivieren des Kontrollkästchens:
Zum Testen des geprüften Status:
Ich hoffe es hilft...
quelle
Da Sie sich in einem modalen Fenster befinden (ob dynamisch oder auf der Seite), können Sie den folgenden Code verwenden, um Ihr Ziel zu erreichen: (Ich bin auf meiner Website auf dasselbe Problem gestoßen, und so habe ich es behoben.)
HTML:
CODE:
Im obigen "kendoWindow" ist mein Fenster (meins ist dynamisch, aber ich mache das auch, wenn ich an ein Element direkt auf der Seite anhänge). Ich durchlaufe ein Array von Daten ("queriesToAddToGroup"), um festzustellen, ob Zeilen das Attribut COPY haben. In diesem Fall möchte ich das Kontrollkästchen im Fenster aktivieren, mit dem dieses Attribut festgelegt wird, wenn ein Benutzer in diesem Fenster speichert.
quelle
prop
vorliegende Frage "funktionieren" können, die Verwendung, wie diese Antwort nahelegt, die RICHTIGE Methode ist, um das dynamische Kontrollkästchen jQuery zu aktivieren / zu deaktivieren.Stellen Sie sicher, dass wahr und falsch nicht in Anführungszeichen stehen.
quelle
.prop('checked', true);
.attr()
es funktioniert, wie beschrieben.Sie können wie unten angegeben Code schreiben.
HTML
jQuery
Hoffe es funktioniert für dich.
quelle
Wenn Sie diese Funktion für ein GreaseMonkey-Skript verwenden möchten, um automatisch ein Kontrollkästchen auf einer Seite zu aktivieren, beachten Sie, dass das einfache Festlegen der aktivierten Eigenschaft möglicherweise nicht die zugehörige Aktion auslöst. In diesem Fall wird das Kontrollkästchen wahrscheinlich "angeklickt" (und auch die aktivierte Eigenschaft festgelegt).
quelle
Find gibt ein Array zurück. Verwenden Sie daher [0], um zu ermitteln, ob nur ein Element vorhanden ist
Wenn Sie find nicht verwenden, dann
In Mozilla Firefox hat das für mich gut funktioniert
quelle
Arbeitete für mich:
quelle
Versuchen Sie dies, da Sie wahrscheinlich die jQuery-Benutzeroberfläche verwenden (falls nicht, kommentieren Sie dies bitte).
quelle
Haben Sie versucht,
$("#estado_cat").checkboxradio("refresh")
auf Ihrem Kontrollkästchen zu laufen ?quelle
Das funktioniert.
quelle
Ich bin auch auf dieses Problem gestoßen.
und hier ist mein alter funktioniert nicht Code
Hier ist mein neuer Code, der jetzt funktioniert:
Stellen Sie daher vor dem Funktionieren sicher, dass die überprüfte Eigenschaft vorhanden ist und nicht entfernt wurde.
quelle
Jbookaccess.prop("checked", data.access != 'private');
Dies liegt daran, dass Sie mit der neuesten Version von jquery
attr('checked')
zurückkehren,'checked'
während Sieprop('checked')
zurückkehrentrue
.quelle
quelle
Aktivieren Sie das Kontrollkästchen nach dem Laden des modalen Fensters. Ich denke, Sie aktivieren das Kontrollkästchen, bevor Sie die Seite laden.
quelle
Ich weiß, dass dies eine Jquery-Lösung erfordert, aber ich möchte nur darauf hinweisen, dass es sehr einfach ist, dies in einfachem Javascript umzuschalten.
Es wird in allen aktuellen und zukünftigen Versionen funktionieren.
quelle
Denken Sie daran, die ID und das for-Attribut zu erhöhen. Kontrollkästchen Für dynamisch hinzugefügten Bootstrap.
quelle