2017-04-15 7 views
0

Ich versuche, ein Radio-Button beim Klicken mit jQuery auswählen. Ich kann das anscheinend nicht zur Arbeit bringen. Hier ist mein aktueller Versuch.Wählen Sie Radiobutton beim Klicken mit jQuery

JS

$(document).ready(function() { 
    $("#payment").click(function(event) { 
    event.preventDefault() 
    $("input:radio[name=slug_tier_1]").attr("checked", true) 
    }) 
}); 

HTML

<label class="plans__tier-1__actions"> 
    <%= radio_button_tag "slug", "tier_1", required: true %> 
    <a href="#" class="button" id="payment">Select</a> 
    </label> 

Screenshot des Namens

enter image description here Dies scheint, als ob es funktionieren sollte? Irgendetwas springt auf dich hinaus?

+0

Seine Arbeit in Ordnung, dies überprüfen: https://jsfiddle.net/gw7vfrnf/ –

+0

Sie sollten mit der Property-Methode 'prop' arbeiten und nicht mit der Attributsmethode' attr'. – vol7ron

Antwort

1

$("input[type='radio'][name='slug_tier_1']").attr("checked", true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="radio" name="slug_tier_1">

Wenn der Name des Eingangs das gleiche in der gerenderten HTML ist, sollte der Wähler

$("input[type='radio'][name='slug_tier_1']").attr("checked", true); 

Die Art sein sollte wie jedes andere Attribut gegeben werden in []. Auch der Name sollte in Anführungszeichen eingeschlossen werden. Siehe link

Von RoR Docs

radio_button_tag 'gender', 'male' 
# => <input id="gender_male" name="gender" type="radio" value="male" /> 

Also in diesem Fall sollte der Name nur slug sein. slug_tier_1 ist die ID des Elements.

Entweder versuchen

$("input[type='radio'][id='slug_tier_1']").attr("checked", true); 

Oder

$("input[type='radio'][name='slug']").attr("checked", true); 
+0

Was zum Teufel tun Sie falsch? Du hast Recht, aber das Optionsfeld wird immer noch nicht ausgewählt. Das ist frustrierend. – Bitwise

+0

Bearbeitete meine Antwort. Type 'radio' sollte wie jedes andere Attribut angegeben werden. –

+0

Funktioniert immer noch nicht :( – Bitwise

0
<a class="btn">button</a> 
<input type="radio" class="radio"> 

$(".btn").click(function(){ 
    $(".radio").prop("checked", true); 
}); 
+1

Ich weiß, was ich falsch mache, weil das immer noch nicht funktioniert ?? Ich benutze Turbolinks – Bitwise

+0

Stellen Sie sicher, Abfrage ist richtig geladen überprüfen Konsole in Chrom (F12) für Javascript-Fehler –

+0

Ich bekomme keine Fehler – Bitwise

0

Ihr Code sieht gut aus. Probieren Sie dies und überprüfen Sie in der Konsole. Es können mehrere Elemente gleichen ids

$(document).ready(function() { 
    console.log($("#payment")); 
    $("#payment").click(function(event) { 
    console.log($("input:radio[name=slug_tier_1]")); 
    }) 
}); 

prüfen, wenn es ein einzelnes Element oder mehrere Elemente gibt sowohl für #payment oder $("input:radio[name=slug_tier_1]")

Try und Antworten

Verwandte Themen