2017-04-15 224 views
0

我试图用jQuery点击单选按钮。我似乎无法得到这个工作,虽然。这是我目前的尝试。用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> 

截图

enter image description here 这好像它应该工作?有什么东西会跳出来吗?

+0

它的做工精细的多个元素,看看这个:HTTPS:/ /jsfiddle.net/gw7vfrnf/ –

+0

您应该使用属性方法'prop',而不是属性方法'attr'。 – vol7ron

回答

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">

如果输入的名称是在呈现的HTML相同,则选择器应该是

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

类型应给予像任何其他属性在[]。这个名字应该用引号引起来。见link

从回报率Docs

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

因此,在这种情况下,名称应该只是slugslug_tier_1是元素的ID。

可尝试

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

或者

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

这是什么错误?你是对的,但仍然没有选择单选按钮。这令人沮丧。 – Bitwise

+0

编辑我的答案。类型'radio'应该像其他任何属性一样给出。 –

+0

仍然无效:( – Bitwise

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

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

我知道我在做什么错误,但仍然不起作用?我正在使用turbolinks – Bitwise

+0

确保查询已正确加载在Chrome(f12)中检查控制台是否有javascript错误 –

+0

我没有收到任何错误 – Bitwise

0

您的代码看起来不错。试试这个并检查控制台。可能有相同的ID

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

检查,如果它返回一个单一的元素,或两者兼有#payment$("input:radio[name=slug_tier_1]")

尝试多种元素和回复