Manā tīmekļa lapā ir 3 radio pogas, kā norādīts tālāk:
<label for="theme-grey">
<input type="radio" id="theme-grey" name="theme" value="grey" />Grey</label>
<label for="theme-pink">
<input type="radio" id="theme-pink" name="theme" value="pink" />Pink</label>
<label for="theme-green">
<input type="radio" id="theme-green" name="theme" value="green" />Green</label>
Ar jQuery es gribu iegūt izvēlētās radio pogas vērtību, ja tiek noklikšķināts uz kādas no šīm trim pogām. JQuery ir id (#) un class (.) selektori, bet ko darīt, ja es gribu atrast radio pogu pēc tās nosaukuma, kā norādīts tālāk?
$("<radiobutton name attribute>").click(function(){});
Sakiet, lūdzu, kā atrisināt šo problēmu.
Tam vajadzētu to izdarīt, tas viss ir atrodams dokumentācijā, kurā ir ļoti līdzīgs piemērs šim:
$("input[type='radio'][name='theme']").click(function() {
var value = $(this).val();
});
Jāatzīmē, ka šajā fragmentā jums ir vairāki identiski ID. Tas ir nederīgs HTML. Izmantojiet klases, lai grupētu elementu kopumu, nevis ID, jo tiem jābūt unikāliem.
Lai noteiktu, kura radio poga ir atzīmēta, izmēģiniet šo:
$('input:radio[name=theme]').click(function() {
var val = $('input:radio[name=theme]:checked').val();
});
Notikums tiks fiksēts visām grupas radio pogām, un izvēlētās pogas vērtība tiks ievietota val.
Atjauninājums: Pēc publicēšanas es nolēmu, ka Paolo atbilde ir labāka, jo tā izmanto par vienu DOM traversēšanu mazāk. Atļauju šai atbildei palikt spēkā, jo tā parāda, kā iegūt izvēlēto elementu ar dažādām pārlūkprogrammām saderīgā veidā..
Varbūt kaut kas līdzīgs šim?
$("input:radio[name=theme]").click(function() {
...
});
Uzklikšķinot uz jebkuras radio pogas, es domāju, ka tā tiks atlasīta, tāpēc šis tiks izsaukts atlasītajai radio pogai.