2012-01-24 38 views
1

我試圖構建某種貨幣轉換器,並且我有兩個選擇菜單和貨幣列表。 我想創建一個按鈕,單擊它時,它將在「從」選擇菜單和「到」選擇菜單之間切換選擇。 如何使用我已有的選擇菜單實現它?切換兩個選擇菜單之間的選擇

回答

0

我相信你正在尋找交換行爲。

http://jsfiddle.net/brentmn/D55Dm/

$(function(){ 
    var $sel1 = $('#currency1'); 
    var $sel2 = $('#currency2'); 

    $('input[type=button]').click(function(){ 
     var val1 = $sel1.val(); 
     var val2 = $sel2.val(); 
     $sel2.val(val1); 
     $sel1.val(val2); 
     //jqueryui 
     //$sel2.val(val1).trigger('change'); 
     //$sel1.val(val2).trigger('change');    
    }); 
}); 
+0

它會工作,如果我已經使用jQuery UI來設計選擇菜單?因爲它對我來說不起作用 – Alon

+0

@Alon,請參閱我在示例中所做的註釋更改;這可能工作。除非您向我提供用於菜單的實際jquery-ui腳本,否則我無法進行測試。發佈鏈接到腳本。 –

0

像這樣的東西?

$("#button").on("click", function() { 
    var from = $("#from").val(); 
    var to = $("#to").val(); 
    $("#from").val(to); 
    $("#to").val(from); 
}); 

我真的會用更少的代碼來做到這一點,但爲了可讀性做了這樣的工作。

0

假設我已經正確理解了你,你需要一個按鈕來交換兩個select元素的值。如果這是正確的,嘗試沿着這些路線的東西:

$("#someButton").click(function() { 
    var elemTo = $("#to"), 
     elemFrom = $("#from"), 
     toVal = elemTo.val(); 
    elemTo.val(elemFrom.val()); 
    elemFrom.val(toVal); 
}); 

它只是獲取兩個select元素(這裏假定爲#to#from)的參考,讓他們中的一個值,替換一個值與另一個的值進行比較,然後用第一個的存儲值替換第二個值。

請注意,這裏假設兩個元素的值都是。如果option存在於一個select中,但不存在,則不起作用。

這裏是working example

+0

謝謝您的回答,但我使用jQuery用戶界面,UI selectmenu我選擇和你的例子並不爲我工作。 – Alon

0

如果dbl單擊'From'部分中的一個項目,它將被選中追加到'To'部分。

$("#selectFrom").dblclick(function(){ 
    $selectTo.append($selectFrom.children(":selected")); 
}); 

你想要哪些功能?