Ich habe versucht, Radiobuttons mit jQuery programmatisch auszuwählen, etwas, von dem ich dachte, es wäre so einfach wie das Ändern des geprüften Attributs.Gibt es einen Fehler mit Radiobuttons in jQuery 1.9.1?
Der folgende Code scheint jedoch nicht das zu tun, was in jQuery 1.9.1 in Chrome/Firefox erwartet wird.
Erwartetes Verhalten: Klicken Sie auf das div um das Optionsfeld -> 'checked' Attribut wird gesetzt -> Renders im DOM markiert.
Tatsächliches Verhalten: Klicken Sie auf das div um das Optionsfeld -> 'checked' Attribut wird gesetzt -> rendert im DOM für die erste und zweite Schaltfläche angeklickt, nachfolgende Schaltflächen werden nicht wie markiert dargestellt.
jQuery:
$('div.form-type-radio').on('click', function() {
var Id = $(this).find('input[type=radio]').attr('id');
$('form input[type=radio]:not(#'+Id+')').removeAttr('checked');
$('#' + Id).attr('checked', 'checked');
console.log($('#' + Id));
});
Hier ist ein jsFiddle - http://jsfiddle.net/GL9gC/
ich den gleichen Code mit früheren Versionen von jQuery versucht haben und alles funktioniert wie erwartet.
Nicht, dass es etwas damit zu tun hat, aber warum zum Teufel würden Sie das Element erhalten , dann die ID und ein paar Zeilen darunter verwenden die ID, um das Element wieder zu bekommen? ('Nicht' arbeitet auch mit Elementen). Deine gesamte Funktion könnte einfach '$ ('input [type = radio]', this) sein .prop ('checked', true);' – adeneo
Das war nur übrig von Kopf kratzen und Debuggen, nur absolut sicher, dass ich hatte die ID. – Simon