2013-01-16 15 views
0

我在頁面中有一個下拉列表,陣列中的每一行都有一個下拉列表。 我需要更新觸發每個更改事件的下拉列中的DIV內容。元素數組的jQuery.change事件

事情是這樣的:

<div class="price"></div> 

<select id="plan[]" name="plan[]" class="sel"> 
    <option value="0" selected="selected">None</option> 
    <option value="1">One</option> 
    <option value="2">Two</option> 
</select> 


$(function() { 
    $('#plan').change(function(){ 
     $(this).prevAll('.price:first').html('foo bar'); 
    }); 
}); 

更改事件從未火災,我缺少什麼?這裏有一個fiddle來測試

+0

我假設你已經設置了'name =「plan []」'因爲它最終會被提交給PHP腳本並且需要是一個數組。您不必設置'id =「plan []」',因爲PHP不會使用它。只需設置'id =「plan」'你的jQuery就可以正常工作了。 – dnagirl

+0

是的,我需要將它提交給PHP腳本。所以我可以留下id =「plan」和name =「plan []」?不知道說實話...謝謝 – bikey77

回答

2

嘗試使用帶id選擇器的通配符。

Live Demo

$(function() { 
    $('[id^=plan]').change(function(){ 
     $('.price:first').html('foo bar'); 
    }); 
}); 

如果您有單個項目,不需要外卡,你可以用id選擇這樣做。

Live Demo

$(function() { 
    $('[id="plan[]"]').change(function() { 
    $(this).prev('.price').html('foo bar'); 
    }); 
}); 
0

你的元素的ID是plan[]而不是​​因此事件回調註冊到沒有對象。

0

id不是​​它是plan[]。 應該作爲選擇器,但它對我來說似乎也是一個錯誤。你可能想把它改成別的東西。這也意味着頁面上有多個plan[] id元素,這是無效的。