2013-01-21 112 views
0

我有想有多個分發點客戶端,1位於東海岸和1個位於西海岸對文檔加載,如果選擇選項更改替換「選擇文本」

我使用的電子商務解決方案不支持這一點。我想出了一個解決辦法,就是通過郵政編碼中的郵件作爲關鍵字來提供多種郵寄選項。

我用一些jQuery來改變「運送選項」以反映分配位置。

這個想法可行,但我的弱點是jquery,如果用戶第二次更改運輸選項,則選項默認回到原始電子商務默認選項。

到目前爲止的代碼是

jQuery(function($){ 
    var sel = document.getElementById('ShippingOptions'); 

    for(var i = sel.options.length - 1; i >= 0; i--) { 
     if(sel.options[i].value == "-1") 
      sel.options[i].text = "Select postage"; 
     if(sel.options[i].value == "75554") 
      sel.options[i].text = "East Coast Distribution"; 
     if(sel.options[i].value == "75555") 
      sel.options[i].text = "West Coast Distribution"; 

     $('#shippingSpan').text("Select postage"); 
    } 
}); 
+0

向我們展示你的HTML太.. – bipen

回答

1

請不要混淆jQuery和DOM。

這不是一個好主意,可以隨時更改選擇。 取而代之的是有兩個選擇或一個隱藏的領域,可以更正正確的航運。

分配點變化的觸發點是什麼?

爲什麼它是一個問題?如果用戶選擇值75554的選項,文本是不是東海岸,如果他選擇75555是選項的文本不是西海岸?

我猜(從所提供的問題和代碼),這是你可能會想:

DEMO

var shippingOpts = { "75554":"East Coast Distribution", "75555":"West Coast Distribution" } 

$(function() {  
    $('#ShippingOptions').on("change",function() { 
    var val = $(this).val(); 
    $('#shippingSpan').text(
     (shippingOpts[val]) ? 
     shippingOpts[val] : 
     $("#ShippingOptions option:selected").text() 
    ); 
    }); 

    // when page loads: 
    $('#ShippingOptions').trigger("change"); 
}); 
+0

感謝您的幫助......它好工作在網頁級,但未能實現時,放入購物車 – user1996597

+0

然後,我需要更多的信息。你可以在jsfiddle.net上發佈一個URL或一些代碼,或者向我發送URL? – mplungjan

0

您可以使用jQuery這樣。

$('#selectorid option:selected').each(function(i, item){ 
     // $(this).value() to access value 
     // $(this).text() to access text 
     // $(this).value(" set value here "); same way for text 

     // use if else ladder or switch case 

    });