簡體   English   中英

在rails 3中選擇onchange不調用功能

[英]Select onchange not calling function in rails 3

我正在嘗試使用選擇框顯示許多項目。 我的選擇標簽包含這樣寫:

<%= select_tag "number_of_pets", options_for_select(allowed_pets_options, @pet_number_storage), onchange:"show_pet_forms(this.value, #{RecordsHelper::ALLOWED_PETS})" %>

並解析為HTML,如下所示:

<select id="number_of_pets" name="number_of_pets" onchange="show_pet_forms(this.value, 4)">
    <option value="1" selected="selected">1 Pet</option>
    <option value="2">2 Pets</option>
    <option value="3">3 Pets</option>
    <option value="4">4 Pets</option>
</select>

在我的application.html.erb文件的頂部區域中,我有以下javascript:

<script type="text/javascript">
function show_pet_forms(pets_selected, pets_allowed) {

    for (var i=1;i<=pets_selected;i++)
    { 
        element_id = "pet-" + i;
        document.getElementById(element_id).style.visibility = "visible";
        document.getElementById(element_id).style.display = "block";
    }
    for (var i=(pets_selected+1);i<=pets_allowed;i++)
    {
        element_id = "pet-" + i;
        document.getElementById(element_id).style.visibility = "hidden";
        document.getElementById(element_id).style.display = "none";
    }
}    
</script>

(最初javascript是在coffeescript文件中的,但是當我試圖找出問題所在時我移動了它。

我嘗試顯示和隱藏的元素是:

<div id="pet-1">
    SOME STUFF HERE
</div>
...
<div id="pet-4">
    SOME STUFF HERE
</div>

不幸的是,當我在選擇框中選擇一個選項時,我看不到任何變化,而且我無法弄清楚它是否未能正確觸發事件,或者我的JavaScript是否有問題(很可能是)。 錯誤在哪里?

謝謝!

第二for是不是隱藏其他的div。

for (var i=(pets_selected+1);i<=pets_allowed;i++)

在上述條件下,您嘗試添加pets_selected + 1 ,它將串聯而不是添加。

您需要先將其解析為整數,然后再添加。

for (var i=(parseInt(pets_selected)+1);i<=pets_allowed;i++)

見小提琴

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM