Skúšal som programovo vyberať prepínače pomocou jQuery, niečo, o čom som si myslel, že bude také jednoduché, ako zmena začiarknutého atribútu.
Zdá sa však, že nasledujúci kód nerobí to, čo sa očakáva v jQuery 1.9.1 v prehliadači Chrome / Firefox.
Očakávané správanie: Kliknite na div ohraničujúci prepínač -> nastavený atribút „skontrolovaný“ sa nastaví -> vykreslenie začiarknuté v DOM.
Skutočné správanie: Kliknite na div ohraničujúci prepínač -> atribút „skontrolovaný“ sa nastaví -> vykreslí sa skontrolované v DOM pre prvé a druhé kliknuté tlačidlo, nasledujúce tlačidlá sa nevykonajú ako začiarknuté.
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));
});
Tu je jsFiddle - http://jsfiddle.net/GL9gC/
Skúsil som rovnaký kód s predchádzajúcimi verziami jQuery a všetko funguje podľa očakávania.
odpovede:
21 pre odpoveď č. 1V takom prípade by ste mali použiť prop () namiesto attr ()/removeAttr ().
Tu pracujeme 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 pre odpoveď č. 2
$("div.form-type-radio").on("click", function () {
$(this).find(":radio").prop({checked: true});
});