2010-10-29 49 views
0

我想要做的是當用戶單擊一個馬的圖像,然後將複選框設置爲true或false。 我有一匹馬,每匹馬都有一個複選框。如何使用javascript設置其中一個複選框的值爲true - rails

我最大的問題是設置我的複選框元素的ID。我嘗試過。 Use custom id for check_box_tag in Rails

<% @horses.each do |s| %> 
    <div class="positionLeft roundedEdge5" style="padding:0 8px;" ondblclick="document.getElementById('line_horses_ids__<%=s.id%>').value = true"> 
    <% if checked == true %> 
     <%= check_box_tag "line[horses_ids][]", s.id, :checked => true %> 
     <%= label_tag "line[horses_ids][][#{s.id}]", s.name %> 
    <% else %> 
     <%= check_box_tag "line[horses_ids][]", s.id %> 
     <%= label_tag "line[horses_ids][][#{s.id}]", s.name %> 
    <% end %> 
</div> 
<%end%> 

但我仍然不能讓複選框變爲true?我究竟做錯了什麼? 任何幫助,將不勝感激。

+1

'如果checked == true true%'來自'<%,'checked'的值在哪裏? – Zabba 2010-10-29 19:18:32

+0

對不起,我沒有把它包含在代碼中。它位於@ horses.each循環中。 <%checked = @fav_horses && @ fav_horses.exists?(s)%> – necker 2010-10-30 09:51:09

+0

現在我的解決方案是使用純html和js。」 name =「horses_ids []」type =「checkbox」value =「<%= s.id %>」onclick =「checkBoxCheck(document.getElementById('horses_ids_ <%= s.id%>')); return true;」 /> – necker 2010-10-30 20:38:30

回答

1

通過使用jQuery,您不必使用自定義id或將javascript放在您的html中......太棒了不是嗎?

如果複選框旁邊就是馬的圖像,只是把一類「形象」爲圖像和類「複選框」的複選框,並添加這個JS在你的application.js:

$(document).ready(function() { 
    $(".image").click(function(this) { 
    $(this).next(".check-box").attr("checked", true); 
    } 
}); 
+0

這是偉大的或它看起來不幸的是我使用阿賈克斯。 – necker 2010-10-30 09:54:11

+0

我告訴你如何使用Unobscursive Javascript來做到這一點,這顯然是最好的方法。如果你使用的是Ajax調用,這並不重要,你可以選中複選框,如果部分是從ajax調用來的(你應該買一本關於jQuery的書)。 – 2010-10-30 10:07:51

+0

這是我的一個愚蠢的評論。我正在使用原型和一些scriptaculous JavaScript庫,我不確定是否應該添加另一個庫,僅僅因爲它會派上用場。謝謝您花時間回答! – necker 2010-10-30 11:35:00

相關問題