2013-07-08 54 views
1

我有三個(級聯)選擇標記,一個接一個出現在div中。它們的html僅在選項上有所不同。選擇的名稱和ID是相同的。如何替換選擇標記,當兄弟更改

<div class="dad"> 
    <select id="foo" name="foo[bar]" value="myVal"> 
    ... 
    <option value="343">boom</option> 
    ... 
    </select> 
    <select id="foo" name="foo[bar]" value="myVal">...</select> 
    <select id="foo" name="foo[bar]" value="myVal">...</select> 
</div> 

我需要的行爲是當一個選擇被改變時,ajax調用被提供爲下一個選擇提供數據(標記)。我回來的數據是標記選擇,它的選項很好,但我有問題取代下一個選擇。

$('select#foo').live("change", function() { 

    var optionSelected = $('option:selected', this); 
    var selID = optionSelected.val(); 

    $.post('/postUrl?data=selID', function(data) { 
     // need to replace the second select 
    }); 
    ... 

通常我會有我需要替換的選擇的id或類,很容易。這裏的問題是,因爲所有三個選擇都有相同的ID和名稱,我怎樣才能確定選擇後的選擇?謝謝。

+2

'id'應該是每個元素的獨特。 – Praveen

+0

@absolutskyy - 我很好奇......爲什麼所有選擇的標籤都有相同的名稱/編號?這是你可以控制的東西嗎?如果是這樣,你應該讓他們獨一無二。另外,隨着項目的發展,你會繼續遇到這樣的問題。 –

+0

你說得很對。這些選擇是元編程的,它不是它應該的方式,但我現在已經改變了選擇具有不同的ID,所以這使得它非常容易。 – absolutskyy

回答

0

你可以做這樣的事情..

$('select#foo').live("change", function() { 

    var optionSelected = $('option:selected', this); 
    var selID = optionSelected.val(); 
    var nextSelect = $(this).next(); 

    $.post('/postUrl?data=selID', function(data) { 
     // do action with nextSelect 
     nextSelect.doSomething; 
    }); 
+0

感謝@dipen感謝您的幫助。請看我上面的評論。 – absolutskyy