/ / ¿Hay un error con los botones de radio en jQuery 1.9.1? - javascript, jquery, depuración, jquery-selectores

¿Hay un error con los botones de radio en jQuery 1.9.1? - javascript, jquery, depuración, jquery-selectores

He estado tratando de seleccionar programáticamente los botones de radio con jQuery, algo que pensé que sería tan simple como cambiar el atributo marcado.

Sin embargo, el siguiente código no parece hacer lo que se espera en jQuery 1.9.1 en Chrome / Firefox.

Comportamiento esperado: Haga clic en el div que encierra el botón de opción -> el atributo "verificado" se establece -> las representaciones se verifican en el DOM.

Comportamiento actual: Haga clic en el div que encierra el botón de radio -> el atributo "verificado" se establece -> se comprueba el DOM en el primer y segundo botón al que se hace clic, los botones subsiguientes no se procesan como se marca.

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));
});

Aquí está un jsFiddle - http://jsfiddle.net/GL9gC/

He intentado el mismo código con versiones anteriores de jQuery y todo funciona como se esperaba.

Respuestas

21 para la respuesta № 1

En este caso, deberías usar apuntalar() en lugar de attr ()/removeAttr ().

Aquí hay un trabajo jsFiddle.

jQuery:

$("div.form-type-radio").on("click", function () {
var Id = $(this).find("input[type=radio]").prop("id");
$("form input[type=radio]:not(#"+Id+")").prop("checked");
$("#" + Id).prop("checked", "checked");
console.log($("#" + Id));
});

2 para la respuesta № 2

DEMO EN VIVO

$("div.form-type-radio").on("click", function () {
$(this).find(":radio").prop({checked: true});
});

http://api.jquery.com/prop/