2012-09-04 55 views
0

我有一個2下拉列表具有相同的值和值由數據庫值填充。我試圖解決的問題是,當提交表單時,2個下拉框不能具有相同的值。 POST值必須不同。如何添加/刪除下拉列表中使用jQuery的值

如果用戶從下拉框A中選擇選項A,我想從下拉框B中刪除選項A.如果用戶從下拉框A中選擇選項B,我希望將選項A放回下拉框B和新值選項B將從下拉框B中刪除。

我試過了幾種不同的方法來做到這一點,最接近的是以下代碼。 這一點我想要做什麼的時候頁面加載.....

$(document).ready(function() { 
    $.dropdownAcache = { 
     val : "", 
     val1 : "", 
    }; 

    $('#id_A').ready(function() { 
     var optionval = $('#id_A').val(); 
     $.dropdownAcache.val = $('#id_A').val(); 
     $('#id_B > option[value=' + optionval + ']').remove(); 
    }); 

    $('#id_A').click(function() { 
     var optionval = $('#id_A').val(); 
     $.dropdownAcache.val1 = $('#id_A').val(); 
     $('#id_B > option[value=' + optionval + ']').remove(); 
     $('#id_B').append$(dropdownAcache.val); 
     $.dropdownAcache.val = $.dropdownAcache.val1; 
    }); 

....但所有這似乎做的是去除從下拉框中B中的值,但從未增加值回。這是實際上很滑稽,因爲我最終在下拉框B中沒有任何價值,但是非常認真,任何人都可以幫助實現這一目標?

Cheers - Oli

回答

1

您應該使用的事件是'change'事件。此外,您不需要第二.ready()回調,也是沒有用處(第一.ready()處理該)

$.dropdownAcache = {  
    val : "", 
    val1 : "" 
}; 

$(document).ready(function() { 

    var optionval = $('#id_A').val(); 
    $.dropdownAcache.val = $('#id_A').val(); 
    $('#id_B > option[value="' + optionval + '"]').remove(); 

    $('#id_A').change(function() { 
     optionval = $('#id_A').val(); 
     $.dropdownAcache.val1 = optionval; 
     $('#id_B > option[value="' + optionval + '"]').remove(); 
     $('#id_B').append($.dropdownAcache.val); 
     $.dropdownAcache.val = $.dropdownAcache.val1; 
    }); 
}); 

(至於爲什麼你的清單永遠不會添加值回來,你有一個不幸的是放置錯字.append$(dropdownAcache.val);

+0

我按照你的建議追加了代碼,但它仍然無法工作。清除了我的瀏覽器緩存等。這裏的理論是否正確?即使用全局變量來存儲以前的值?謝謝.. – Oli

+0

好的 - 讓我重新檢查一下,因爲我已經看到你的編輯 – Oli

+0

爲什麼'$ .dropdownAcache'而不僅僅是'dropdownAcache'? – Barmar

相關問題