Bitte überprüfen Sie die folgende Ausgabe auf Konsole, beachten Sie, dass das erste Eingabeattribut und ausgewählt geprüft:jQuery: checked nicht mit anfänglicher Arbeits (HTML-Attribut) Radioeingang
Sie ich kann sehen, 2 Radio input
s, 1 ist checked
, aber weder Selektor noch prop
noch is
funktioniert dafür. Der Code funktioniert korrekt, wenn ich manuell auf eines der Radio klicke. Hier ist mein HTML:
<div class="col-sm-6">
Type:
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-default active">
<input type="radio" name="generator-type" id="opt-type-passphrase" value="0" autocomplete="off" checked>
Passphrase
</label>
<label class="btn btn-default">
<input type="radio" name="generator-type" id="opt-type-password" value="1" autocomplete="off">
Password
</label>
</div>
</div>
Warum ist der Code nicht funktioniert, wenn die Seite geladen wird, wenn ich kein Radio geklickt haben? Gibt es eine Möglichkeit, es zu beheben?
EDIT: Findet das Problem, habe ich diesen Code auf der Seite zu laden:
$("input[name='generator-type'][value=" + this.Options.Type + "]").prop("checked", "");
Die richtige Lösung wird unter Verwendung von:
.prop("checked", true)
Aber kann jemand bitte erklären, wie es funktioniert? Warum gibt es das checked
Attribut, aber prop
Funktion ist immer noch falsch?
@HectorBarbossa Danke, ich habe die Quelle des Problems gefunden, aber immer noch nicht verstehen, wie 'prop' und' is' noch arbeiten. Kannst du es erklären? –
Ihre Frage zur Funktionsweise wird in [der Dokumentation] (http://api.jquery.com/prop/) behandelt. Ein wichtiger Aspekt, den es zu verstehen gilt: Das HTML-Attribut legt nur den Wert * initial * der Eigenschaft fest. Wenn es über Code oder Benutzerinteraktion geändert wird, ändert sich das HTML nicht, aber die Eigenschaft tut es. –