2014-01-15 70 views
-1

這是我的表單HTML代碼。根據選擇菜單中的值顯示價格

<form> 
<select id="country1"> 
    <option value="United States">United States</option> 
    <option value="United Kingdom">United Kingdom</option> 
    <option value="Germany">Germany</option> 
    <option value="Canada">Canada</option> 
</select> 
<input name="amount1" value="" readonly="readonly" /> 

<select id="country2"> 
    <option value="United States">United States</option> 
    <option value="United Kingdom">United Kingdom</option> 
    <option value="Germany">Germany</option> 
    <option value="Canada">Canada</option> 
    <option value="France">France</option> 
</select> 
<input name="amount2" value="" readonly="readonly" /> 

<select id="country3"> 
    <option value="United States">United States</option> 
    <option value="United Kingdom">United Kingdom</option> 
    <option value="Germany">Germany</option> 
    <option value="Canada">Canada</option> 
    <option value="Australia">Australia</option> 
    <option value="India">India</option> 
</select> 
<input name="amount3" value="" readonly="readonly" /> 

</form> 

現在在同一訂單頁面上我有多個產品,每個產品都有選擇國家名稱的菜單。

現在,這些國家中的每一個都有不同的運輸價格,所以我想要的是當用戶選擇這些國家中的任何一個來顯示其輸入框下的運輸價格。

我不熟悉JQuery,所以任何人都可以寫下使這項工作成功的代碼。有時我會在下拉菜單中添加新的國家,所以它應該很容易在JQuery中添加它們。

非常感謝!

變化: 建議之後,我的jQuery代碼:

$(function() { 
    $('#country1').change(function() { 
      var prices = { 
      'United States':9.99, 
      'United Kingdom':14, 
      'India':11, 
      'Germany':14 
      }; 
     $('input[name=amount1]').val(prices); 
    }); 
}); 
+0

我們應該猜測價格隱藏在提供的html中的位置? – Alex

+0

你的答案是在Javascript上學習並學習它,而不是要求某人爲你完成所有的工作。 – dthree

+1

傢伙,如果你不能幫忙,那就不需要這些答案。是的,我知道我需要學習JS,我的PHP開發人員和我正在開發需要一些JQ代碼的項目,所以我要求了一個快速幫助 –

回答

1

讓我們打破這種分割成更小的組件,每一個都是容易可研究的,可測試...

首先要到響應select元素的change事件。類似這樣的:

$('#country1').change(function() { 
    // respond to the event here 
}); 

你也想寫一個值給input元素。事情是這樣的:

$('input[name=amount1]').val(someValue); 

現在,你也想確定什麼該值。鑑於問題中的信息,我們不能爲你做到這一點。所以我會假設你已經或可以創建該邏輯。然後,結果呢?是這樣的:

$('#country1').change(function() { 
    var someValue; 
    // some logic to determine the value 
    $('input[name=amount1]').val(someValue); 
}); 

您願意爲每一對selectinput元素做到這一點。另外,還需要確保元素在嘗試綁定到它們的事件之前存在(否則不會發生),因此您可以將整個事件包裝到jQuery函數中,以便它不會嘗試執行代碼,直到文檔的ready事件:

$(function() { 
    $('#country1').change(function() { 
     var someValue; 
     // some logic to determine the value 
     $('input[name=amount1]').val(someValue); 
    }); 
}); 
+0

感謝David給出了一個很好的解釋。你能檢查一下根據你的建議創建代碼的更新後的線程嗎,但是當我選擇一個國家名稱時,我得到[Object]並且沒有值,那麼可能有什麼建議? –

+1

@BorisZegarac:因爲你創造了價格作爲一個對象。 'input'不能把它翻譯成一個字符串。你想在「輸入」中實際顯示什麼值?這是你在'val()'函數中設置的值。在這種情況下,您可以通過使用'select'中的選定值將其引用爲數組,從對象中選擇它。例如:'$('input [name = amount1]')。val(prices [$(this).val()]);'(未經測試,但值得研究) – David

+0

可愛!正如我所需要的那樣工作。謝謝大衛,代表。添加。 –