Ho cercato di selezionare i pulsanti di opzione con jQuery, cosa che pensavo sarebbe stata semplice come cambiare l'attributo selezionato.C'è un bug con i pulsanti di opzione in jQuery 1.9.1?
Tuttavia, il seguente codice non sembra fare ciò che è previsto in jQuery 1.9.1 in Chrome/Firefox.
Comportamento prevista: Fare clic sul pulsante che include il pulsante di opzione -> l'attributo 'checked' viene impostato -> il rendering viene controllato nel DOM.
comportamento reale: Fare clic sul div che racchiude il pulsante di opzione -> 'controllati' attributo viene impostata -> visualizza controllato nel DOM per il primo e secondo pulsante cliccato, le successive pulsanti non rendano come controllato.
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));
});
Ecco un jsFiddle - http://jsfiddle.net/GL9gC/
Ho provato lo stesso codice con le precedenti versioni di jQuery e tutto funziona come previsto.
che non ha nulla a che fare con questo, ma perché diavolo si potrebbe ottenere l'elemento , quindi l'ID e alcuni le linee sotto usano l'ID per ottenere l'elemento, ancora? ('non' funziona anche con gli elementi). La tua intera funzione potrebbe essere semplicemente '$ ('input [type = radio]', this) .prop ('checked', true);' – adeneo
Questo è stato appena lasciato da qualche graffio e debug della testa, solo per essere assolutamente sicuro di averlo l'ID. – Simon